![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
拓扑排序
seeeagull
这个作者很懒,什么都没留下…
展开
-
[P2494][SDOI2011]保密(整体二分+拓扑排序+最大流)
这道题其实分为两步:1.求出从点n到点1~n1的最短距离,也就是ΣSi/ΣTi(i为路径上的点)的最小值。 2.求出能到达所有空腔的距离之和的最小值。 我们逐个来考虑。对于第一步,我们可以看到每个点的答案都在0.1到10.0的范围内,考虑整体二分。(然后发现蒟蒻不会整体二分,赶快临时学习一下…)如果某个点的最短距离小于等于当前尝试的解,即有ΣSi/ΣTi<=x,整理后即为ΣSi-ΣTi*x<=0。所以我们每次把边权设为s-t*x,求从n点出发到1~n1点的最短路。注意到题中保证没有环,所..原创 2020-08-23 17:42:52 · 174 阅读 · 0 评论 -
[P2597][ZJOI2012]灾难(拓扑排序+lca)
由于食物网中不含环,所以我们想到可以建一棵树,每个节点指向以它为食的点,这样统计灾难值时,只有它子节点的灾难值会对它直接产生影响。但是一个物种可能是多个物种的食物,所以一个节点会有很多复制点。于是修改建树方式,让一个节点的父节点为能决定它是否灭绝的点,即为它原先所有复制点的父节点的lca。所以建图时要从上往下建,也就是要先拓扑排序,保证所有指向节点i的节点,在i之前连到树上。最后求一下每个子树的大...原创 2019-05-12 08:45:34 · 133 阅读 · 0 评论