摘要: 考虑k=1的做法:这是一道原题,我还写过题解,其实挺水的,但当时我菜还是看题解的:https://www.cnblogs.com/hfctf0210/p/10187947.html。其实就是树上差分后值为1。 考虑k>1的做法:其实可以再次树上差分,给每个点i赋值v[i]=dep[i]k-dep[i 阅读全文
posted @ 2019-05-13 21:55 hfctf0210 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 二进制分组SB做法没意思还难写还可能会被卡常其实是我不会写。用一种比较优秀的O(Tnlogn)做法,只需要做2次dijkstra。对原图做一次、对反图做一次,然后记录每个点的最短路是从k个源点中的哪个转移过来的。然后枚举每条边,若两边转移过来的源点不同,则用d1+w[i]+d2来更新答案即可。 #i 阅读全文
posted @ 2019-05-13 21:49 hfctf0210 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 感觉是6题中最难的一题,其实这题是一个二合一: 第一问:给定平面上若干点和k个关键点,关键点覆盖一个45°倾斜的正方形范围r,求有多少点被至少一个关键点覆盖。这个可以曼哈顿转切比雪夫距离,然后再扫描线求解,复杂度O(nlogn) 第二问:求最少和最多有多少次擦肩而过。显然每个交点都可以做对向交换,这 阅读全文
posted @ 2019-05-13 21:46 hfctf0210 阅读(178) 评论(0) 推荐(0) 编辑