**我的答题思路就是树状数组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