2021.10.13pm
10.13PM
| 预期 | 实际 | |
|---|---|---|
| A | 100 | 30 |
| B | 0 | 0 |
| C | 100 | 100 |
| S | 200 | 130 |
A [SDOI2011]打地鼠 \(\blacktriangle\)
- 仔细想想 \(O(n*m)\) 太奇怪,\(O(n^2m^2)\) 很好但显然整不出,咱只会 \(O(n^3m^3)\) 暴力进行优化。
- 我选的是正着扫,如果 \(x*y\) 不行,那么 \((k_1*x)*(k_2*y)\) 也不行,标记上遇到直接跳过。
- 如果所有地鼠数目之和不是我敲的横或纵的倍数,显然敲不完也跳过。
- 就这两个优化,就可以过掉这个题。当然提高效率加个差分也行。
B[SDOI2011]消防 \(\blacktriangle\!\blacktriangledown\)
- 其实也不是一道难题。树网的核数据加强版。
- 要使距离最大值最小,容易想到在直径上选一段,然后比较这一段中延伸出去的非直径边,和两段的直径边和。(直径边和肯定最大,不然它就不会是直径)
- 前两次DFS找直径,第三次记录直径上的点并记录直径的前缀和,第四次找延伸出去的非直径边。
- 直接每个点延伸出去找一次显然T掉,尺取法进行优化保证区间长度刚好不大于要求长度。
- 同时一一枚举区间每个点延伸出去长度也是要T掉,单调队列维护。
C [SDOI2011]染色\(\blacktriangle\!\blacktriangledown\)
- 树剖,显然树剖。
- 这玩意难点就在 \(merge\) 操作。
- 对于一个区间 \((l,r)\),显然从\((l,mid),(mid+1,r)\) 转移过来。
- 树剖往上跳时如下图:
- 向上跳时,要注意\(merge\) 的参数位置,因为不满足交换律。
- 同时最后一次是\(l和l\)合并,不要整错。
- 觉得没有紫题水平,可能纯粹由于树剖?

\(\cal {Made} \ {by} \ {YuGe}\)
浙公网安备 33010602011771号