qbxt

d1:t1暴力

t2一开始看成l-r里随便选单个数异或小于x的数了,这个可以倍增归约二分套线段树,复杂度一个log

考虑对c排序,每次找差量,统计答案

对原序列差分,问题转化为每次异或两个点

然后我们发现除非两个点都被更新过否则直接乘

如果两个都更新过那么就找大的那个乘起来

然后你发现wa了,错误原因待补

然后我们考虑拆位,每一位是互不影响的

然后一个很自然的套路是说对两个数怎么怎么样他的奇偶性不会变

所以拿个并查集瞎搞搞就行了,线性基纯属胡扯,图论纯属胡扯,生成树纯属胡扯

t3垃圾树上问题,noip以内就只有lca,树剖,dsu三个要么就是直径什么的性质

然后我们发现这是个dsu的形式,直接dsu,拿个set或者线段树合并,双log,没啥意思

t4

第一个部分分:两个点之间连重边

第二个部分分:k个点,每两个点连两条边

正解:随机化那个纯属瞎扯,不想写

考虑构造一个菊花图,然后对那些点顺次连边再往外扩展一点(这个我在考场上想到了)

然后考虑构造套路之二进制分组,拆出来的位就让那个‘根’向外连边

妙妙屋

上一篇:Dsu on tree 和 点分治


下一篇:【题解】CF1284G Seollal