任务(优先级自上而下
- 完成当天所有练习题
- 写总结
- 练习:https://vjudge.net/contest/618888
- 学习 Splay https://vjudge.net/contest/612337
- 其他习题任务,具体如下。
具体习题任务:
题解
Week 1,Monday T1
https://www.luogu.com.cn/problem/P5304
题面:一个有向图,给 \(k\) 个特殊点,求最短的、两个不同特殊点之间的最短距离
\(1 \le k \le n \le 10^5\) 且 \(1 \le m \le 5\cdot 10^5\)。
考虑将 \(k\) 个点分为两个集合 \(A\) 和 \(B\),如何求两个集合之间的最短距离?用 dijkstra,初始 push
\(A\) 几何的所有点,然后做即可,但是注意这是有向图,所以 dijkstra 需要 \(A\) 到 \(B\) 和 \(B\) 到 \(A\) 都跑一遍。
考虑如何枚举这集合。有一种办法,就是二进制分解。每个点的编号都有一个二进制,任意两个点的二进制编号至少有一位不同,而我们只要求两个点不在同一集合。所以可以枚举位数,通过编号这一位的 01
来确定所属集合。
随后复杂度 \(O(n \log^2)\)
总结
Week 1,Monday
https://vjudge.net/contest/621309
T1。需要注意有向图的坑,例如 dijkstra 在有向图中求两点互相距离,需要两个点各跑一遍。
T2。
T3。一些无规律的构造题可以暴力分类讨论,只要讨论的范围包含所有可能情况即可。
T4。
闲话:T1我调了2h,都是有向图害的。
标签:有向图,八下,vjudge,下午,dijkstra,le,https,集合,集训 From: https://www.cnblogs.com/huangqixuan/p/18122374