更新阵列时的段树

时间:2015-07-09 13:50:55

标签: java algorithm tree

这是一项正在进行的编程竞赛Problem。这里我们必须使用4种类型的操作来更新阵列

查询1:1 x y v
这意味着将v添加到阵列A到从x到y的所有索引
查询2:2 x y v
这意味着对于从x到y的所有索引,将标量v与数组A相乘
查询3: 3 x y v这意味着在x到y的所有索引处初始化数组A,其值为v 查询4:4 x y 这是一个报表查询,需要查找A中从x到y的值之和
我已经使用细分树解决了这个问题。我很确定我的解决方案是正确的,因为我尝试了多个查询并得到了正确的答案。

但是我的测试用例失败了我已经尝试了多次,但无法弄清楚我在哪里做错了。

我使用懒惰的支持来维护数组级别[3] [n]

Level[0][n] is for addition update
Level[1][n] is for multiplication update
Level[2][n] is for Resetting the Value 

这是我的Full Working Code

我在过去的几天里摸不着头脑但却无法弄清楚我做错了什么我试过多次输入并得到了正确的答案,但无法弄清楚为什么它失败了

请帮助我。谢谢。

0 个答案:

没有答案