打了一天的比赛。
A B C D 太水了,直接放代码链接得了,点字母就能看对应代码。
E - Sightseeing Tour
看范围 $N$ 只有 $400$,所以我们可以先用 floyd 搞出任意两点间的距离。
对于每次询问,发现 $K_i$ 只有 $5$,所以可以直接深搜应该走哪座桥,和应该走到哪一端。
时间复杂度 $O(N3+QK_i!2)$,代码链接。
F - Gather Coins
经过了 8.30 上午的模拟赛过后想必看到这道题都能条件反射 cdq 吧。
状态转移方程式我想都应该不用列,关键是看到二维偏序要想到 cdq,想到了就是模板题。
不会做的先把 8.30 的比赛补了你就会做了。
不多说了,直接挂代码链接。
G - As far as possible
听说这道题原到了洛谷 P10641?
F 题的 cdq 调了半天才调出来,结果一看 G 是到水题,10min 切了,我是不是该先做 G 啊?
一个非常好想到的点就是每次一定选的是叶子节点,因为叶子节点一定包含了它向上所有点的贡献。
接下来我们考虑怎么去选取叶子节点。
因为要求每次增加的贡献最大,所以我们考虑长链剖分。
长链剖分后每个叶子节点所新增的贡献就变成了所在链的链长加上链头到它父亲节点的距离。
然后将贡献从大到小排序,依次添加进答案就可以了。
时间复杂度 $O(n+\sqrt n \log \sqrt n)$,分别是长剖和排序的复杂度,代码链接。
标签:复杂度,题解,代码,链接,叶子,ABC369,cdq,8.31,节点 From: https://www.cnblogs.com/tkdqmx/p/18395272