线段树裸题
我们将灯开着视为1,关着视为0。
那么一段区间开着的灯的数量就是这段区间的和,这样很容易就能想到用线段树来维护。
每次反转可以用懒标记来维护,
反转后开着的灯的数量就是这段区间的长度减去现在的这段区间开着的灯的数量
即 $f[k]=(r-l+1)-f[k]$;
比较好理解,可以当成线段树的入门题来做
1 |
|
Code for more
我们将灯开着视为1,关着视为0。
那么一段区间开着的灯的数量就是这段区间的和,这样很容易就能想到用线段树来维护。
每次反转可以用懒标记来维护,
反转后开着的灯的数量就是这段区间的长度减去现在的这段区间开着的灯的数量
即 $f[k]=(r-l+1)-f[k]$;
比较好理解,可以当成线段树的入门题来做
1 | #include<bits/stdc++.h> |