洛谷---小L和小K的NOIP考后放松赛
链接:
https://www.luogu.org/contestnew/show/11805?tdsourcetag=s_pcqq_aiomsg
题解:
没人过的题我就没看
t2:
考虑每个点是朋友的区间是连续的
然后维护每个人朋友的右端点
显然是单调递增的
然后线段树瞎搞一下就好了
蜜汁tle一个点 要了数据再说
t4:
这题直接做显然不行
我刚开始竟然一直在想怎么还原背包然后觉得很难。。
按位考虑就很简单
我们要求这一位一定要选奇数个
$C(n,1)+C(n,3)+C(n,5)+....=2^{n-1}$
这个证明的话就是二项式定理$(x+1)^n=\sum C(n,i)*x^i$
然后啊对于0的就任选
k代表第几位
所以就是$2^{k-1}*2^{a-1}*2^b$
然后发现这个东西其实就跟你这一位有没有1有关。。。
修改的话也是按位修改比较简单
暴力就是按位树链剖分,复杂度$nlog^3{n}$
但是这样每一位单独维护一个bool变量显然很浪费
由于我们并不需要知道每一位的实际个数,所以仍旧可以作为一个数维护
直接把左右儿子|起来然后查这一位有没有就是查这一位是不是1
注意到还是区间^操作,那么一个地方现在应为1就说明以前应有0
也就是区间的&值
所以我们只需要维护区间&,|值就可以了
复杂度$nlog^2{n}$