洛谷P2574 Xor的艺术(线段树)
题意:给你一个01串,有以下操作.
选择一个区间[l,r],翻转该区间的01串(0变1,1变0)
输出一个区间[l,r] 1 的数量.
思路:典型的区间操作,考虑线段树解决.维护一个区间1的数目,记为tree[idx],如果翻转该区间,实际上就是把这个区间1的数目改为 (r - l +1) - tree[idx].其中 (r - l +1)代表区间长度 ,它减完tree[idx](当前1的数量.
就是目前0的数量.然后是把0翻转为1,1翻转为0.所以(r - l +1 ) - tree[idx] 就代表了翻
原创
2021-11-19 11:31:34 ·
326 阅读 ·
0 评论