【最小生成树】还是畅通工程
还是畅通工程
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 30613 Accepted Submission(s): 13713
当N为0时,输入结束,该用例不被处理。
3
1 2 1
1 3 2
2 3 4
4
1 2 1
1 3 4
1 4 1
2 3 3
2 4 2
3 4 5
0
Huge input, scanf is recommended.
1 #include <iostream> 2 #include <stdio.h> 3 #include <math.h> 4 #include <queue> 5 #include <algorithm> 6 #define MAX 100100 7 using namespace std; 8 int First[MAX]; 9 int Sign;/*记录边编号*/ 10 struct Poin 11 { 12 int to,v,next; 13 friend bool operator<(Poin a,Poin b) 14 { 15 return a.v>b.v; 16 } 17 }ID[MAX*3]; 18 void Cread(int N){for(int i=0;i<=N;i++)First[i]=0;Sign=1;}/*初始化*/ 19 void Add_E(int x,int y,int z) 20 { 21 ID[Sign].to=y; 22 ID[Sign].v=z; 23 ID[Sign].next=First[x]; 24 First[x]=Sign++; 25 } 26 27 int Prim(int N)/*Prim+堆维护*/ 28 { 29 priority_queue <Poin>Q; 30 Poin NUM; 31 int P=1,i,Sum=0,Vis[MAX]={0}; 32 Vis[P]=1;N--; 33 for(i=First[P];i;i=ID[i].next){Q.push(ID[i]);} 34 while(!Q.empty()&&N) 35 { 36 NUM=Q.top();Q.pop(); 37 if(!Vis[NUM.to]) 38 { 39 P=NUM.to;Vis[P]=1; 40 Sum+=NUM.v;N--; 41 for(i=First[P];i;i=ID[i].next) 42 Q.push(ID[i]); 43 } 44 } 45 if(!N)return Sum; 46 else return -1; 47 } 48 int main() 49 { 50 51 int N,M,i,A,B,C,SUM; 52 while(scanf("%d",&N)!=EOF) 53 { 54 M=N*(N-1)/2; 55 if(N==0)break; 56 Cread(N); 57 for(i=0;i<M;i++) 58 { 59 scanf("%d%d%d",&A,&B,&C); 60 Add_E(A,B,C);Add_E(B,A,C); 61 } 62 SUM=Prim(N); 63 if(SUM!=-1)printf("%d\n",SUM); 64 else printf("?\n"); 65 } 66 return 0; 67 }
View Code
代码详细参考畅通工程:http://www.cnblogs.com/LWF5201314614/articles/3929305.html
转载于:https://www.cnblogs.com/Wurq/articles/4562124.html
【最小生成树】还是畅通工程相关推荐
- [最小生成树] 继续畅通工程
题目描述 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修建 ...
- 最小生成树--还是畅通工程
还是畅通工程 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通 ...
- [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)
L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...
- hdu1879 继续畅通工程 最小生成树
继续畅通工程 此题明显属于最小生成树的题目 关于最小生成树,有两种方法,一种是Kruskal方法,一种是Prim算法,第一种用并查集即可实现 1 /* 2 hdu1879 3 2013-03-18 1 ...
- hdu 1233 还是畅通工程 最小生成树(prim算法 + kruskal算法)
还是畅通工程 Time Limit: 4000/2 ...
- hdu 1879 继续畅通工程 (最小生成树)
继续畅通工程 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 【HDU - 1863】 畅通工程(并查集+最小生成树)
题干: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可能建设公路的 ...
- HDU 1879 继续畅通工程 最小生成树
继续畅通工程 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description ...
- 还是畅通工程 最小生成树
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...
- A - 还是畅通工程(最小生成树)
点击打开链接 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通 ...
最新文章
- caioj 1077 动态规划入门(非常规DP1:筷子)
- ArcGIS改变数据集或要素类的的坐标系(投影)
- STM32F0使用LL库实现SHT70通讯
- AR科技贯穿里约奥运始终 腾讯QQ营销顺风车值了
- iOS开发之MapKit
- 【状压dp】AC Challenge
- 嵌入式系统--ARM微处理器概述
- 网络设备流量分析——ElastiFlow容器化部署与应用
- 帆软连接数据库的步骤
- C语言俄罗斯方块代码
- 【数据分析自学】二、Excel基础知识
- 【前端】静态网页和动态网页
- matlab 相机焦距,matlab – 给定焦距和摄像机位置/旋转的正确透视图像
- ajax errorthrown属性,【技术】error:function (XMLHttpRequest, textStatus, errorThrown)
- C语言for循环能不能定义,关于for循环的格式
- Yau 近代几何讲座
- 用html画布做扇形,jquery canvas 画扇形
- Linux schedule 4、负载均衡
- 微信小程序包体积过大解决方法
- 如何arcview或arcgis下用SHP文件切DEM和影像图?
热门文章
- 代码故事:汉德的救赎
- map和unordered_map
- 关于市场调查分析与需求分析的心得
- 【杭电ACM】1.2.6 decimal system
- C#中创建线程的四种方式
- Linux系统编程 -- 多线程之基于环形队列的生产者与消费者模型
- 广度搜索 -- 9.1 Word Ladder -- 求是否有解 -- 图解
- jar包上传maven私服出错Cannot deploy artifact from the local repository
- windows 10卸载(注销)WSL,注销(卸载)当前安装的Linux的Windows子系统
- PyTorch并行与分布式(二)分布式通信包torch.distributed