20231015

20231015 NOIP#21总结

时间安排

7:50~8:20

看题,\(A\) 一眼切了,\(B\) 会一点暴力,\(C,D\) 没有想法。

8:20~8:50

\(A\) 的正解。

8:50~9:50

\(B,C\) 的暴力和特殊性质。

9:50~11:00

一直在想 \(B\),想出来了 \(B\) 的正解写了,但是特判和分段挂了。

11:00~11:50

写了 \(D\) 的爆搜,然后一直在 (罚坐) 想 \(C,D\) 但一点多的都不会。

总结反思

  • 为什么不拍 \(B\)

题解

A.最短路

超级源点板子。

B.组合

对于一个极大的包含 \(k\)\(1\) 的长度为 \(n\) 的区间,方案数为 \(C_n^k\)
但是区间会有重合的部分,设第 \(i\) 的段和第 \(i+1\) 个段相交的长度为 \(l\),有 \(x\)\(1\),则应减去 \(C_l^x\)。若多个区间重合,只需要考虑相邻的两个区间即可,因为多次重合的区间会在考虑后面的段时被一起减掉。

C.最短路径图

建出从 \(S\)\(T\) 的最短路径图,并预处理 \(U,V\) 到所有点的单源最短路,答案即为 \(\min\{dis(U,x)+dis(y,V)\}\) 其中 \(x,y\) 位于最短路径图的同一条链上。最短路径图是一个 \(DAG\),这个问题可以通过对其做 \(DP\) 解决。代码

D.点分治

\(f[x]\) 表示离 \(x\) 最近的魔法使的点(后面称为坏点)到 \(x\) 的距离。则对于满足 \(dis(u,v)<f[v]\) 的点 \(v\)\(u\) 都可以走到 \(v\) 然后不动,除非 \(u\) 本身就是坏点,所以 \(u\) 节点的答案就是 \(\max_{dis(u,v)<f[v]}\{f[v]\}\)
即对于任意点 \(u\),将所有距离 \(u\) 点小于 \(f[u]\) 的节点答案都对 \(f[u]\)\(\max\),这个可以通过点分治解决。代码

posted @ 2023-10-16 07:16  programmingysx  阅读(6)  评论(0编辑  收藏  举报