![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 77
imalyd
这个作者很懒,什么都没留下…
展开
-
NOIp2016十连测第五场T2 walk 题解
正解要从第二种部分分思路想。这个思路为什么是$O(n\times\max(w))$的?因为每次求森林最长链时其实真正有用的点/边并不多,而算法将大量时间花费在了无用点(孤立点)上。如果找有用边时顺便记录有用的点,那么就只需要遍历这些点。由于一个数$i$约数的上界是$O(\sqrt i)$的,所以总时间复杂度$O(\max(w)^\frac 32)$。原创 2018-12-16 10:18:11 · 1389 阅读 · 3 评论 -
NOI2018 D1T1 题解
传送门 首先,预处理每个点到1号点的最短距离distdistdist(它等于1号点到每个点的最短距离)。注意:SPFA死了!可以用堆优化Dijkstra。 然后我们就把问题转换成了:从一个点出发,只经过海拔大于某个值的边,能到达的点中distdistdist的最小值。 这个问题怎么解决呢?有请Kruksal重构树出场! 什么是Kruskal重构树? 有点像并查集,但不同的是在Kruska...原创 2019-01-27 10:09:33 · 851 阅读 · 0 评论 -
HNOI2019选讲
D1T1 鱼 传送门 首先O(N6)O(N^6)O(N6)的做法是显然的:直接枚举即可。但是显然枚举量太大了。 这类题有一种思路,就是考虑哪些点是比较关键的,固定比较关键的点。 这题中,显然D和A是最关键的。因此固定D,把其他点绕D极角排序,并按顺序枚举A。 B、C的方案数: 显然BC⊥\perp⊥AD,且BC中点在AD上。 因此事先把每条线段的方向、中点hash并存下来,查找时lower_bo...原创 2019-05-09 21:18:47 · 229 阅读 · 0 评论