摘要: 题意:求一个无向图的点连通度。把一个点拆成一个入点和一个出点,之间连一条容量为1的有向边,表示能被用一次。最大流求最小割即可。一些细节的东西:1.源点固定,汇点要枚举一遍,因为最小割割断以后会形成连通分量,在分割以后那个连通分量里的割会更大。2.每次枚举重建一下图。3.从入点进,出点出,才认为是经过... 阅读全文
posted @ 2015-08-28 22:28 陈瑞宇 阅读(725) 评论(1) 推荐(0) 编辑
摘要: 求所有点直接的平均最短距离,保存一下出现过的点,题目保证是所有点连通,Floyd求出最短路以后两个for统计一下。#includeusing namespace std;const int maxn = 101;int g[maxn][maxn];bool vis[maxn];vector p;co... 阅读全文
posted @ 2015-08-28 22:27 陈瑞宇 阅读(440) 评论(0) 推荐(0) 编辑
摘要: 如果没有洞,那么任意两点的最短距离就是直线距离,洞里是瞬间的,所以看成一个点就行了(其实点也可以当作半径为0的洞来处理),洞到洞的最短距离都是圆心距离减去半径。剩下的就是求单源最短路径,是完全图,用不加堆优化的dijkstra就行了O(n^2)。#includeusing namespace std... 阅读全文
posted @ 2015-08-28 22:27 陈瑞宇 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 题意,有n个匀速动点,求最小生成树的改变次数。一句话总结:动态问题的一般做法是先求出一个静态的解,然后求出解发生改变的事件,事件按照时间排序,依次处理。先求出最开始的最小生成树(MST),当MST中的某条线段v长度被不在MST的线段u取代的时候,最小生成树才会发生变化,具体来说,已经知道之前的MST... 阅读全文
posted @ 2015-08-28 10:26 陈瑞宇 阅读(734) 评论(0) 推荐(1) 编辑