摘要: 题意 序列单点修改,区间询问最大连续子段和。 最大子段和难以更新,不过这里的单点修改降低了难度,不用维护标记了。现在要做的就是通过维护数个数据支持最大子段和的查询。 考虑最大子段和是连续子段,如果在这个子段中砍一刀,它仍然是两段: 而反过来,知道了右子段中紧靠左边的最大子段和,左子段中紧靠右边的最大 阅读全文
posted @ 2019-08-04 00:35 _wkjzyc 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题意 维护一段序列,支持区间乘,区间加,区间求和。 注意到操作有两种,则维护两个$lazytag$,分别对应乘和加。 区间加 与模板1相同。 区间乘 除了更新乘标记,将要加上的部分也要受乘法影响。所以要把两个标记都乘一次。 标记下传 首先乘标记可以直接下传。 而子节点的加标记还没有做乘法,而当前节点 阅读全文
posted @ 2019-08-04 00:17 _wkjzyc 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 看题面可以目测得出本题要求对01区间进行区间修改和查询。 查询区间和,就直接维护区间和。在修改时,就用总灯数(长度)减去当前开着的灯数(当前区间和)作为新的答案。 考虑修改两次相当于没修改,所以$lazytag$就累计操作数,如果是偶数则不用更新呢,奇数反之。 其余部分与线段树模板基本相同。 cpp 阅读全文
posted @ 2019-08-04 00:03 _wkjzyc 阅读(137) 评论(0) 推荐(0) 编辑