MST——HDOJ 1233/1863/1879
来源:互联网 发布:淘宝卖东西需要囤货吗 编辑:程序博客网 时间:2024/06/06 05:14
HDOJ 1233 还是畅通工程
/*HDOJ 1233 还是畅通工程简单的MST就行了*/#include <iostream>using namespace std;#define INF 99999999int graph[103][103];int sum,N;void Prim(int v){int lowcast[103];int i,min,j,k;for(i=1;i<=N;i++){lowcast[i]=graph[v][i];}lowcast[v]=0;for(i=1;i<=N;i++){min=INF;for(j=1;j<=N;j++){if(lowcast[j]!=0 && lowcast[j]<min){min=lowcast[j];k=j;}}lowcast[k]=0;if(min == INF)return;sum += min;for(j=1;j<=N;j++){if(graph[k][j]<lowcast[j]){lowcast[j]=graph[k][j];}}}}void Create_Graph(){int m=N*(N-1)/2;int i,j,a,b,w;for(i=1;i<=N;i++){for(j=1;j<=N;j++){graph[i][j]=INF;}}for(i=1;i<=m;i++){cin>>a>>b>>w;graph[a][b]=w;graph[b][a]=w;}}int main(){while(cin>>N){if(N == 0)break;sum=0;Create_Graph();Prim(1);cout<<sum<<endl;}return 0;}
HDOJ 1863 畅通工程
/*HDOJ 1863 畅通工程MST简单应用*/#include <iostream>#include <algorithm>using namespace std;struct edge{int a;int b;int cost;}c[2000];int p[103];int rank[103];int N,M;bool cmp(const edge &a,const edge &b){return (a.cost<b.cost);}int Find(int x){int y,root,w;y=x;while(p[y] != y)y=p[y];root=y;y=x;while(p[y] != y){w=p[y];p[y]=root;y=w;}return root;}void Union(int a,int b){if(rank[a] <= rank[b]){p[a]=b;if(rank[a] == rank[b])++rank[b];}elsep[b]=a;}void Make_set(){for(int i=1;i<=M;i++){p[i]=i;rank[i]=0;}}int main(){int i,j,sum,count,x,y;while(cin>>N>>M){if(N == 0)break;Make_set();for(i=0;i<N;i++)cin>>c[i].a>>c[i].b>>c[i].cost;sort(c,c+N,cmp);sum=0;count=0;for(i=0;i<N;i++){x=Find(c[i].a);y=Find(c[i].b);if(x != y){Union(x,y);count++;sum += c[i].cost;}if(count == M-1)break;}if(count == M-1)cout<<sum<<endl;elsecout<<'?'<<endl;}return 0;}
HDOJ 1879 继续畅通工程
/*HDOJ 1879 继续畅通工程MST基本运用*/#include <iostream>#include <algorithm>using namespace std;struct edge{int a;int b;int cost;}ed[5000];int rank[101];int p[101];int N,M;bool cmp(edge &a,edge &b){return (a.cost<b.cost);}int Find(int x){int y,root,w;y=x;while(p[y] != y)y=p[y];root=y;y=x;while(p[y] != y){w=p[y];p[y]=root;y=w;}return root;}void Union(int a,int b){if(rank[a] <= rank[b]){p[a]=b;if(rank[a] == rank[b])++rank[b];}elsep[b]=a;}void Make_set(){for(int i=1;i<=N;i++){p[i]=i;rank[i]=0;}}int main(){int i,j,count,sum,flag,num,a,b;edge temp;while(cin>>N){Make_set();if(N == 0)break;M=N*(N-1)/2;count=0;num=0;for(i=0;i<M;i++){cin>>temp.a>>temp.b>>temp.cost>>flag;if(flag == 0)ed[num++]=temp;else{a=Find(temp.a);b=Find(temp.b);if(a != b){Union(a,b);count++;}}}sort(ed,ed+num,cmp);sum=0;for(i=0;i<num;i++){a=Find(ed[i].a);b=Find(ed[i].b);if(a != b){Union(a,b);count++;sum += ed[i].cost;}if(count == N-1)break;}cout<<sum<<endl;}return 0;}
- MST——HDOJ 1233/1863/1879
- MST/UFS——HDOJ 1232
- MST——HDOJ 1102/1875
- The Unique MST--hdoj
- MST——Prime
- MST——Kruskal
- hdoj 5253 连接的管道 【MST】
- poj1679——The Unique MST
- poj1679——The Unique MST
- POJ1679——The Unique MST
- 算法14讲——MST/Greedy
- MST
- MST
- MST......
- mst
- MST
- MST
- MST
- Map-Reduce入门
- ZOJ Alice's Sequence II //矩阵乘法
- 类SCP程序(无身份认证)
- 去盛大了,开始了一段新的历程
- HP-UX命令大全
- MST——HDOJ 1233/1863/1879
- 经纬度距离查询优化实例
- HP-UX swap相关
- html代码中<base target="_blank">
- HP-UX实战:扩展HP小机rx8640上的swap和dump空间
- HP-UX扩展swap空间
- Javascript “组件模式” 深入研究
- 如何学习java,及方向
- HP-UX 的内存交换机制--交换Swap与伪交换Pseudo swap