一些杂题的感想 #1
学习了 yhx 爷爷的一个题解格式?尽量记录下来着一些题。
P7037 [NWRRC2016] Gangsters in Central City
考虑用那一个 dfs 序求 \(\text {LCA}\) 的 trick,然后我们显然是直接取 \(\text {LCA}\) 即可。拿一个 \(\text {set}\) 维护即可。
坑点:set 的 rbegin() 要记得怎么用
CF601E A Museum Robbery
线段树分治,思考这些其实比较自然,然后跑一个背包和秦九韶算法即可。
坑点:分治时记得传入背包的数组,然后时间的标记别搞错了,以及
memset(g, 0, sizeof(f))为啥错了。
CF1416D Graph and Queries
考虑时间倒流。然后我们自然的可以启发式合并预处理出一些连通块的若干关系,然后恰好可以和时间正流相匹配。
坑点:不要写路径压缩,这个题写启发式合并有高度保证,若是压缩了就回不到过去了呜呜呜
P4271 [USACO18FEB] New Barns P
直接用 lct 动态维护两点长度,然后根据典结论,向直径两端的计算即可。
坑点:记得一定 \(x \to y\) 这个连通块一定不要 \(\text{ancestor}\) 之类的设错了。
P6845 [CEOI2019] Dynamic Diameter
考虑使用树形 dp 的方法维护树的直径,发现这个题可以 DDP。
犯蠢的地方:long long 乱设,矩阵乘法甚至带上了 LLONG_MAX 纯纯杀软。
CF1662F Antennas
一眼弹跳。
考虑到 \((u, v)\) 的大小关系。
\(u < v\):
维护区间 \([u, u + p_u]\) 中所有的 \(v - p_v \leq u\) 即可,这个可以用区间 min,像弹跳。
\(u > v\)
后面这个维护 \([u, u + p_u]\) 中所有的 \(v + p_v \geq u\) 即可,用区间 max,像弹跳。
CF348C Subset Sums
一眼顶真,鉴定为根号分治。枚举块与大块的交,然后打 tag 即可。

浙公网安备 33010602011771号