
最小生成树
Noooooorth
能够放弃的东西从来都不叫梦想
展开
-
HDU 4081 Qin Shi Huang's National Road System(prim)
我们可以先建一棵最小生成树,然后再从这n个城市中选择2个城市,把二者之间的路看做用法术造的路。如果这条路在最小生成树上,即去掉这条边后最小生成树会变成两棵独立的树,那么A/B就是(二者城市的人口数总和/最小生成树的值减去二者之间的长度);如果这条路不在生成树上,那么为了使A/B最大,我们要在最小生成树上删除一条权值最大的边使得生成树分为两棵树,同时这2个城市不在同一颗树上,然后就可以把这两个城市之间的路视为用法术造出的路,A/B就是(二者城市的人口数总和/最小生成树的值减去二者之间某条使二者连通的边的最大原创 2015-08-06 16:43:23 · 2730 阅读 · 0 评论 -
SCU 4525 meixiuxiu学图论(kruskal)
题目链接:点击打开链接题目大意:输出一个图的所有环上边权最大值的最小值。解题思路:可以利用树无环的性质,使用kruskal按照边权值从小到大逐条添加边,当第一次添加失败,也就是当向树上添加这条边后将会形成环,那么这个边就是形成的环上权值最大的边,同时也是权值最小的使形成环的边,#include #include #include #include #include原创 2016-07-26 00:59:34 · 514 阅读 · 0 评论 -
HDU 2489 Minimal Ratio Tree(prim+DFS)
首先n的范围是[2,15],所以可以用dfs搜索使得Ratio最小的点。那么思路基本清晰:首先dfs,搜索所有的点选与不选所得到的最大的Ratio,如果当前状态下得到的Ratio比之前得到的Ratio要小,那么把当前状态的vis数组更新的答案ans数组中。最后从1到n扫描ans数组即可保证答案是升序。原创 2015-08-06 16:49:13 · 1650 阅读 · 0 评论 -
POJ 1797 Heavy Transportation(二分+并查集/kruskal)
有n个城市,m条路,从1走到n的道路的最大承载量,最大承载量就是走过的路的承载量的最小值。呵呵呵~~~再次举个栗子:假设n=3,m=3,连接1与2的城市的路的承载量为3,连接1与3的承载量是4,连接2与3的承载量是5,那么从1到3有2种走法:(1)1-2-3,承载量依次是3,5,那么最大承载量就是5;(2)1-3,承载量是4,最大承载量也是4,所以答案是4。原创 2015-08-16 14:08:17 · 2089 阅读 · 0 评论