hdu 2988(kruskal求最小生成树)
来源:互联网 发布:基本款斜挎包 知乎 编辑:程序博客网 时间:2024/06/09 18:19
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2988
思路:水题,kruskal求最小生成树之后,直接用总权值减去即可。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 #define MAXN 222222 7 typedef long long LL; 8 struct Edge{ 9 int u,v,w;10 }edge[MAXN];11 LL ans,sum;12 int parent[MAXN];13 int n,m;14 15 int cmp(const Edge &p,const Edge &q){16 return p.w<q.w;17 }18 19 int Find(int x){20 int s;21 for(s=x;parent[s]>=0;s=parent[s])22 ;23 while(s!=x){24 int tmp=parent[x];25 parent[x]=s;26 x=tmp;27 }28 return s;29 }30 31 void Union(int R1,int R2){32 int r1=Find(R1),r2=Find(R2);33 if(r1==r2)return ;34 if(parent[r1]<parent[r2]){35 parent[r1]+=parent[r2];36 parent[r2]=r1;37 }else {38 parent[r2]+=parent[r1];39 parent[r1]=r2;40 }41 }42 43 LL Kruskal(){44 LL s=0;45 for(int i=0;i<m;i++){46 int u=edge[i].u,v=edge[i].v,w=edge[i].w;47 if(Find(u)!=Find(v)){48 s+=w;49 Union(u,v);50 }51 }52 return s;53 }54 55 int main(){56 while(~scanf("%d%d",&n,&m)&&(n+m)){57 memset(parent,-1,sizeof(parent[0])*n);58 ans=0;59 for(int i=0;i<m;i++){60 scanf("%d%d%d",&edge[i].u,&edge[i].v,&edge[i].w);61 ans+=edge[i].w;62 }63 sort(edge,edge+m,cmp);64 sum=Kruskal();65 printf("%I64d\n",ans-sum);66 }67 return 0;68 }
0 0
- hdu 2988(kruskal求最小生成树)
- HDU-1233(kruskal求最小生成树)
- hdu 1233 Kruskal求最小生成树
- HDU 1301 Jungle Roads (Kruskal求最小生成树)
- Kruskal算法(求最小生成树)
- KrusKal求最小生成树
- HDU 1102 Constructing Roads(Kruskal最小生成树求最小花费)
- hdu 1161 kruskal求最小生成树注意建图
- 最小生成树(kruskal) hdu 1233
- HDU 4786(最小生成树 kruskal)
- hdu 1301(最小生成树kruskal)
- Kruskal算法求最小生成树 (最小堆优化)
- hdu 1233 还是畅通工程(kruskal求最小生成树)
- HDU 1879 继续畅通工程(Kruskal求最小生成树)
- 克鲁斯卡尔(Kruskal)算法求最小生成树
- 克鲁斯卡尔(Kruskal)算法求最小生成树
- hdu1102 - Constructing Roads (求最小生成树) (Prim & Kruskal)
- hdu1233 - 还是畅通工程 (求最小生成树)(Kruskal)
- hdu 4293
- hdu 2608(找规律)
- hdu 4396(spfs/二维最短路)
- hdu 4360(最短路变形)
- hdu 3501(欧拉函数的应用)
- hdu 2988(kruskal求最小生成树)
- bnu 4359(数位dp)
- hdu 2236(最大匹配+枚举上下界)
- hdu 3861(缩点+最小路径覆盖)
- 关于tomcat服务器新学到的一些东西
- hdu 3335(最小路径覆盖)
- hdu 4313(类似于kruskal)
- hdu 4296(贪心)
- hdu 4311(枚举)