d1:t1暴力
t2一开始看成l-r里随便选单个数异或小于x的数了,这个可以倍增归约二分套线段树,复杂度一个log
考虑对c排序,每次找差量,统计答案
对原序列差分,问题转化为每次异或两个点
然后我们发现除非两个点都被更新过否则直接乘
如果两个都更新过那么就找大的那个乘起来
然后你发现wa了,错误原因待补
然后我们考虑拆位,每一位是互不影响的
然后一个很自然的套路是说对两个数怎么怎么样他的奇偶性不会变
所以拿个并查集瞎搞搞就行了,线性基纯属胡扯,图论纯属胡扯,生成树纯属胡扯
t3垃圾树上问题,noip以内就只有lca,树剖,dsu三个要么就是直径什么的性质
然后我们发现这是个dsu的形式,直接dsu,拿个set或者线段树合并,双log,没啥意思
t4
第一个部分分:两个点之间连重边
第二个部分分:k个点,每两个点连两条边
正解:随机化那个纯属瞎扯,不想写
考虑构造一个菊花图,然后对那些点顺次连边再往外扩展一点(这个我在考场上想到了)
然后考虑构造套路之二进制分组,拆出来的位就让那个‘根’向外连边
妙妙屋