洛谷---小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}$

posted @ 2018-11-18 21:57  尹吴潇  阅读(160)  评论(0编辑  收藏  举报