44 lines
836 B
C++
44 lines
836 B
C++
#include <bits/stdc++.h>
|
||
|
||
using namespace std;
|
||
const int N = 11;
|
||
|
||
int a[N] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||
|
||
void print() {
|
||
int s = 0;
|
||
for (int i = 1; i < N; i++) {
|
||
s += a[i];
|
||
cout << s % 2 << " ";
|
||
}
|
||
cout << "\n";
|
||
}
|
||
|
||
int main() {
|
||
/*
|
||
01矩阵+区间修改+单点查询 <=> 非01矩阵+单点修改+区间前缀和查询
|
||
办法:
|
||
① 区间[l,r]取反 => 单点修改:a[l]++,a[r+1]++
|
||
② 单点查询a[k] => 区间前缀和查询: sum(a[1~k])%2
|
||
*/
|
||
|
||
//将2-4取反
|
||
a[2]++, a[4 + 1]--;
|
||
print();
|
||
|
||
//将2-4再取一次反
|
||
a[2]++, a[4 + 1]--;
|
||
print();
|
||
|
||
//将3-4再取一次反
|
||
a[3]++, a[4 + 1]--;
|
||
print();
|
||
|
||
return 0;
|
||
}
|
||
/*
|
||
输出:
|
||
0 1 1 1 0 0 0 0 0 0
|
||
0 0 0 0 0 0 0 0 0 0
|
||
0 0 1 1 0 0 0 0 0 0
|
||
*/ |