第三天,也要记得抱灵哦
0.闲扯
今天又是奇怪的题面(
看 T1,一开始没思考,先糊了个 \(O(n)\) 上去,把剩下的通读了一遍打打暴力
机房电脑不知为何全炸了,然后代码什么的被还原了(悲)
后来打表发现 T1 是傻逼题,心想不好今天大众分又要 \(200+\) 了,找了找规律,用奇怪的方法跑了大样例 \(0.15s\)
最后剩下俩题啥都不会,爬了。
1.题解
A
求 \(1\sim n\) 的约数异或和。
板子题,不讲。
B
给定平面上水平竖直线段各 \(n\) 条,询问每条线段是否是割点。
大概是主席树什么的东西。
C
给定一棵树,支持单点修改、单点所在同色连通块修改、维护同色连通块信息。
发现点同色连通块不能均摊,把点权转移到边上,每次修改最多会影响 \(O(1)\) 个边连通块。
然后,ETT???不会,下一个。
2.根号 DS 选讲
P4689
拍成 DFS 序之后发现其实换根没有意义,然后随便差分跑莫队。
P3245
显然 \(suf_l\equiv suf_{r+1}\pmod p\Leftrightarrow p|s_{[l,r]}\times10^{n-r-1}\)。
特判掉 \(p=2,5\) 的情况就是小 Z 的袜子了。
P3604
回文串就是出现次数全部为偶数或者有一个为奇数,很容易联想到异或,我们把 \(26\) 个字母压位,这样区间异或和如果等于零或者等于某个 \(2\) 的幂就合法。
所以相当于查询区间有多少个二元组 \((l,r)\) 满足 \(\bigoplus\limits_{i=l}^r2^{a_i}=2^k\),其中 \(k=-\infty,0,1,\dots,25\)。莫队转移时枚举不同的情况即可。
P6779
考虑整块上跳会发生什么,如果块内跳的时候出现了祖先关系,那么下面的点就直接报废了。
所以说序列上每块内树上每个点最多被访问一次,均摊 \(O(n\sqrt{n})\)。