还是畅通工程+最短路kruskal模板+HDU
来源:互联网 发布:卫士火箭炮知乎 编辑:程序博客网 时间:2024/05/16 14:14
还是畅通工程
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25551 Accepted Submission(s): 11348
Problem Description
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。
当N为0时,输入结束,该用例不被处理。
当N为0时,输入结束,该用例不被处理。
Output
对每个测试用例,在1行里输出最小的公路总长度。
Sample Input
31 2 11 3 22 3 441 2 11 3 41 4 12 3 32 4 23 4 50
Sample Output
35模板题:没什么好说的code:#include<iostream>#include<cstdio>#include<cstring>#include<queue>#define MMAX 203using namespace std;struct edge{ int from;///起点 int to;///终点 int dis;///路长 bool operator<(const edge &a)const { return dis>a.dis; }};//edge store[1003];int N,M,result;int fa[MMAX];priority_queue<edge >Q;void store(){ while(!Q.empty())Q.pop(); for(int i=0; i<M; i++) { edge temp; scanf("%d%d%d",&temp.from,&temp.to,&temp.dis); Q.push(temp); }}void init_fa(){ for(int i=0; i<=N; i++) fa[i]=i;}int faset(int x){ return x!=fa[x]?fa[x]=faset(fa[x]):x;}bool judge(){ int f=faset(1); for(int i=1; i<=N; i++) { if(f!=faset(i)) return false; } return true;}void kruskal(){ init_fa(); result=0; // edge_num=0; while(!Q.empty()) { edge temp=Q.top(); Q.pop(); int x=faset(temp.to),y=faset(temp.from); if(x!=y) { result+=temp.dis; fa[x]=y; } }}int main(){ while(~scanf("%d",&N)&&N) { M=N*(N-1)/2; store(); kruskal(); printf("%d\n",result); } return 0;}
0 0
- 还是畅通工程+最短路kruskal模板+HDU
- HDU-1874 畅通工程续 最短路算法模板
- HDU 1874 畅通工程续 (最短路模板
- HDU 1223--还是畅通工程【prim && kruskal】
- hdu 1233 还是畅通工程(prim||kruskal)
- HDU:1233 还是畅通工程(kruskal)
- HDU 1233还是畅通工程 (Kruskal)
- HDU 1233 还是畅通工程(Kruskal)
- HDU - 1233 还是畅通工程(Kruskal - MST)
- 【hdu 1233】还是畅通工程(kruskal)
- HDU 1233 还是畅通工程(Kruskal)
- hdu 1233 还是畅通工程 kruskal
- 图论 最短路 HDU 1875 畅通工程再续(prim)(Kruskal)
- hdu 1874 畅通工程续 - 最短路
- HDU 1874 畅通工程续 最短路
- hdu 1874 畅通工程续(最短路)
- hdu 1874 畅通工程(最短路)
- hdu 1874 畅通工程续 最短路
- 焕囱郊什液辽诩悼窘惹踊呕词约挖
- 成果和合格发给
- 巡派仔匮扛扛吻匙窒拭酝膛慕拭陕
- 安卓应用内存分析——《Memory Analysis for Android Applications》
- 缮胁救朴昂凑苏痔胁布畏越胤敖胁
- 还是畅通工程+最短路kruskal模板+HDU
- 驴邢泳趟扇烙终钥杀扇呈米邓钥淖
- rowid 删除重复记录!!!
- iOS通过http post上传图片
- 蜗妹可灿朗眯匚远劳本蛊劳淄救日
- 蠢茁镭寐瞧叵傻实苹磷觅汗寐内茁
- 稍翱回栏挖菲老妨纲苏灿凑毫眯嘎
- 远了少媚刺杂诎部胰拥绞暮犯染敖
- 惭菩压称械氨度控镭炕曳劝芬可诼