蒟蒻树状数组求调,谢大佬

P5057 [CQOI2006] 简单题

**我的答题思路就是树状数组C[i]表示i-lowbit(i)+1到i这些元素需不需要取反** **假如[3,10]取反,则(理想的话)C[10]=true,C[8]=true,C[2]=true;** **查询时假设查下标为2的元素,则(理想)会先在C[2]时取1,再到C[8]时取0** ------------ 蒟蒻思路,不知对不对
by galiyuebing @ 2023-03-02 09:23:11


不麻烦大佬们了,是操作一出了问题 ```cpp int j,s=x+1; for(j=y;j>=x;j-=lowbit(j)) { C[j]=!C[j]; if(j-lowbit(j)<x) { s=j-lowbit(j)+1; break; } } for(int j=s;j<x;j+=lowbit(j))C[j]=!C[j]; ``` 应该是: ```cpp int j=y; while(j>0) { C[j]=!C[j]; j-=lowbit(j); } j=x-1; while(j>0) { C[j]=!C[j]; j-=lowbit(j); } ```
by galiyuebing @ 2023-03-02 10:18:25


|