hdu Constructing Roads (最小生成树)
2013-08-09 13:58
288 查看
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1102
/************************************************************************/ /* hdu Constructing Roads 最小生成树 题目大意:在N个村子中已经存在部分存在连通,建最少长度的路使得所有的村子连通。 解题思路:已经连通的村子其中间的路径作为0,即修建的时候修建为0耗费,求这些节点的最小生成树。 */ /************************************************************************/ #include <cstdio> #include <iostream> #include <algorithm> using namespace std; const int N = 101; int map ; int mark ; int n,q,i,j; int Prim() { int sum = 0; int t = n; int min,k; memset(mark,0,sizeof(mark)); while(--t) { min = 10000; for (i = 2; i <= n; i++) { if(mark[i]!=1 && map[1][i] < min) { min = map[1][i]; k = i; } } mark[k] = 1; sum += min; for (j = 2; j <= n; j++) { if(mark[j]!=1 && map[k][j] < map[1][j]) { map[1][j] = map[k][j]; } } } return sum; } int main() { while(scanf("%d",&n)!=EOF) { for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { scanf("%d",&map[i][j]); } } scanf("%d",&q); while(q--) { scanf("%d%d",&i,&j); map[i][j] = 0; map[j][i] = 0; } printf("%d\n",Prim()); } return 0; }
相关文章推荐
- hdu Constructing Roads(最小生成树,kuskal算法)
- Constructing Roads+最小生成树模板题+hdu
- (step6.1.6)hdu 1301(Jungle Roads——最小生成树)
- poj 2421 Constructing Roads kruskal克鲁斯卡尔最小生成树
- HDU Jungle Roads 1301 最小生成树、
- Jungle Roads HDU - 1301 (最小生成树 prim)
- hdu1301——Jungle Roads——最小生成树
- HDU 4424 Conquer a New Region (最小生成树+贪心)
- 最长上升子序列 HDU 1025 Constructing Roads In JGShining's Kingdom
- hdu 5253 连接的管道 最小生成树
- hdu 2489 最小生成树
- HDU 3228 题解(最小生成树)(Kruskal)(内有详细注释)
- HDU 4463 Outlets 最小生成树Kr~
- HDU 1223 还是畅通工程(最小生成树prim模板)
- hdu 4786 Fibonacci Tree 乱搞 智商题目 最小生成树
- hdu 1233 还是畅通工程 (最小生成树)
- hdu Constructing Roads In JGShining's Kingdom
- hdu 携程全球数据中心建设 (球面距离 + 最小生成树)
- HDU 1863 畅通工程(最小生成树)
- hdu 4786 Fibonacci Tree ( 最小生成树 )