2021.10.13pm

10.13PM

预期 实际
A 100 30
B 0 0
C 100 100
S 200 130

A [SDOI2011]打地鼠 \(\blacktriangle\)

  1. 仔细想想 \(O(n*m)\) 太奇怪,\(O(n^2m^2)\) 很好但显然整不出,咱只会 \(O(n^3m^3)\) 暴力进行优化。
  2. 我选的是正着扫,如果 \(x*y\) 不行,那么 \((k_1*x)*(k_2*y)\) 也不行,标记上遇到直接跳过。
  3. 如果所有地鼠数目之和不是我敲的横或纵的倍数,显然敲不完也跳过。
  4. 就这两个优化,就可以过掉这个题。当然提高效率加个差分也行。

B[SDOI2011]消防 \(\blacktriangle\!\blacktriangledown\)

  1. 其实也不是一道难题。树网的核数据加强版。
  2. 要使距离最大值最小,容易想到在直径上选一段,然后比较这一段中延伸出去的非直径边,和两段的直径边和。(直径边和肯定最大,不然它就不会是直径)
  3. 前两次DFS找直径,第三次记录直径上的点并记录直径的前缀和,第四次找延伸出去的非直径边。
  4. 直接每个点延伸出去找一次显然T掉,尺取法进行优化保证区间长度刚好不大于要求长度。
  5. 同时一一枚举区间每个点延伸出去长度也是要T掉,单调队列维护。

C [SDOI2011]染色\(\blacktriangle\!\blacktriangledown\)

  1. 树剖,显然树剖。
  2. 这玩意难点就在 \(merge\) 操作。
  3. 对于一个区间 \((l,r)\),显然从\((l,mid),(mid+1,r)\) 转移过来。
  4. 树剖往上跳时如下图:
image
  1. 向上跳时,要注意\(merge\) 的参数位置,因为不满足交换律。
  2. 同时最后一次是\(l和l\)合并,不要整错。
  3. 觉得没有紫题水平,可能纯粹由于树剖?

image

\(\cal {Made} \ {by} \ {YuGe}\)

posted @ 2021-10-14 07:31  u2003  阅读(52)  评论(0)    收藏  举报