7月9日模拟赛总结
here.
T1 略。
T2 简单分层图,就是同层连 \(w\) 边,异层连 \(0\) 边(注意是 \(u \to v+n\) 和 \(v \to u+n\) 连,并且不能连回去)。
T3 同 T2。
T4:
现在要求 CD 最短路,显然可以将问题的关键在于要知道哪些边边权为 \(0\),这很显然可以转化为判定一条边是否位于 AB 最短路上的问题。
如何解决?验证 \(dis_{A,x}+w+dis_{y,B}=dis_{A,B}\) 即可,这个跑两遍最短路即可解决。
还有一个只能选一条的限制,怎么办?
容易发现一个性质,即 CD 最短路上边权为 \(0\) 的一段边一定是连续的。采用反证法,若从 C 走到 D 时经过了两段这样的边,结合只能经过 AB 最短路中的一条,这显然没有将这两段连起来更优。
有了这条性质,由于连续的一段显然一定都处于一条最短路上(反证法易证),我们就可以在走最短路的时候强制它只走一段 \(0\) 边,然后再也不踏上去,具体请见代码实现。
成绩:100+18+20+0=138,rk3。
总结:
-
分层图想清楚连边。
-
抓住问题本质并转化问题、发掘性质。

浙公网安备 33010602011771号