第十一章 图论模型与算法(习题)
aozil_yang
这个作者很懒,什么都没留下…
展开
-
UVA 821 Page Hopping (Floyd)
题意: 告诉你哪两个点连通,求平均距离,为每个结点到其他点距离总和除以总对数。 思路: Floyd水题 这个题点不是连续的,直接存到vector里 枚举vector好了。 #include #include #include #include #define Siz(x) (int)x.size() using namespace std; int g[107][107]; b原创 2017-03-11 21:28:23 · 250 阅读 · 0 评论 -
UVA 1001 Say Cheese (三维Floyd)
题意: 在三维空间中,告诉你起点位置 和终点位置, 并且告诉你n 个球,你在球中可以瞬间移动,在球外的移动速度是10m/s ,要求从起点到终点的最小时间? 思路: 最短路问题,很明显floyd 我们把起点终点看成半径为0的球, 那么问题就转换成了求 n+2个球的最短路。 因为是瞬间移动. 当两个球的球心距 小于等于 半径之和 的话,说明它们是相交的。 因此 这两个球的距离是0 否则原创 2017-03-11 22:08:01 · 479 阅读 · 0 评论 -
UVA 820 Internet Bandwidth(最大流)
题意: 求s到t的最大流 思路 最大流 #include #include #include #include #include using namespace std; const int maxn = 10000 + 7; const int inf = 0x3f3f3f3f; struct Edge{ int from, to, cap, flow; }; st原创 2017-03-13 00:41:06 · 531 阅读 · 0 评论 -
UVA 1669 && HDU 4118 Holiday's Accommodatio (思路题目--统计子树结点 )
题意: 给你一棵包括n 个结点的树,每个结点上住着一个人,每个人都要换房子,但不能有两个人 住在同一个房子,求的所有人的最大路程长度? 思路: 成都2011年区域赛的题目: 感觉正解好巧妙: 最优解肯定是让每一个边尽量走更多次数。 那么我们只需要算一下每个边 走的最大次数是多少即可。 比如说a 这个结点的子树里(包括a) 一共有u 个结点, 那么剩下的有 n-u 个结点。令f 是a的原创 2017-03-13 20:40:52 · 767 阅读 · 0 评论 -
UVA 1664 Conquer a New Region (并查集+贪心)
题意: n 个城市形成一棵树,每条边有权值C(i,j),任意两个点的容量S(i,j)定义为i与j 唯一通路上容量的最小值,找一个点,使得它到其他点的容量之和最大,求最大值? 思路: 贪心思路。 我们给边从大到小排序,因为是一棵树, 每个边都要处理。 因此当前枚举的边一定是当前集合中 最小的边,因此他就是容量, 我们分别让两个端点的并查集父亲 作为中心城市, 找一个大的进行合并即可。 这原创 2017-03-13 22:04:01 · 463 阅读 · 0 评论