hdu4081次小生成树】的更多相关文章

pid=4081">http://acm.hdu.edu.cn/showproblem.php?pid=4081 Problem Description During the Warring States Period of ancient China(476 BC to 221 BC), there were seven kingdoms in China ---- they were Qi, Chu, Yan, Han, Zhao, Wei and Qin. Ying Zheng wa…
先求一遍最小生成树,然后遍历所有边,如果这条边在最小生成树中就直接减去这条边的距离,如果不在最小生成树中,那么就构成了一个环,此时需要减去最小生成树中最大的边,即求次小生成树时的maxx, 有一点要注意当求maxx最大值时j!=k,虽然不知道原理是什么....如果有大佬知道求告知 好像求次小生成树时没有这个条件,据说还能prim+dfs做.... #include<map> #include<set> #include<cmath> #include<queue&…
题意:有n个点,n-1条边.现在徐福可以让一条边无消耗建立,即魔法边.B表示除魔法边之外的的其他边的消耗值和,A表示这条魔法边相连的2个集合中都选一点,这两点的最大值,现在要求A/B最大. 方法:因为2个值都在变,所以不能贪心.考虑枚举边的情况.由于直接枚举边太多,可以先考虑让B变小,因为A相比来说是可控的.B很容易就想到是最小生成树里面的边.先求一遍最小生成树,得到minMST值.枚举删除生成树上的边.由于删除生成树上的边后,变成2棵子树(由于删除生成树上的边,所以B<minMST),然后选出…
题目链接:https://vjudge.net/problem/HDU-4081 Qin Shi Huang's National Road System Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8970    Accepted Submission(s): 3175 Problem Description During the…
先发发牢骚:图论500题上说这题是最小生成树+DFS,网上搜题解也有人这么做.但是其实就是次小生成树.次小生成树完全当模版题.其中有一个小细节没注意,导致我几个小时一直在找错.有了模版要会用模版,然后慢慢融会贯通.我要走的路还长着啊. 这里有两个次小生成树的模版: http://www.cnblogs.com/Potato-lover/p/3949996.html 此题的解题思想:在prim算法中做一些改变,求出任意两点(u,v)路径之间的最大权值,并记录,记为maxe[u][v].运行一遍pr…
Qin Shi Huang's National Road System Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10874    Accepted Submission(s): 3846 Problem Description During the Warring States Period of ancient China(4…
题目大意: 有n个城市,秦始皇要修用n-1条路把它们连起来,要求从任一点出发,都可以到达其它的任意点.秦始皇希望这所有n-1条路长度之和最短.然后徐福突然有冒出来,说是他有魔法,可以不用人力.财力就变出其中任意一条路出来. 秦始皇希望徐福能把要修的n-1条路中最长的那条变出来,但是徐福希望能把要求的人力数量最多的那条变出来.对于每条路所需要的人力,是指这条路连接的两个城市的人数之和. 最终,秦始皇给出了一个公式,A/B,A是指要徐福用魔法变出的那条路所需人力, B是指除了徐福变出来的那条之外的所…
The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 28673   Accepted: 10239 Description Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spanning Tree): Consider a connected, undir…
Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22335   Accepted: 7922 Description Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spanning Tree): Consider a connected, undirected graph G =…
题意:求一幅无向图的最小生成树与最小生成树,不存在输出-1 解法:用Kruskal求最小生成树,标记用过的边.求次小生成树时,依次枚举用过的边,将其去除后再求最小生成树,得出所有情况下的最小的生成树就是次小的生成树.可以证明:最小生成树与次小生成树之间仅有一条边不同.不过这样复杂度有点高,可达O(m^2). 求次小生成树有O(mlogm+n^2)的算法,详见 代码: #include <iostream> #include <cstdio> #include <cstring…