最小生成树_Conscription(POJ.3723)
来源:互联网 发布:激光镭射键盘知乎 编辑:程序博客网 时间:2024/06/07 15:58
题目链接:http://poj.org/problem?id=3723#top
分析:一道模板题
AC代码
#include <cstdio>#include <algorithm>#include <iostream>using namespace std;struct edge{ int u,v,cost;};edge es[50050];int x,y,z;int par[20020];bool comp(const edge &n,const edge &m){ return n.cost<m.cost;}void init(int n){ for(int i=0;i<n;i++) { par[i]=i; }}int findrt(int n){ if(par[n]==n) return n; else return par[n]=findrt(par[n]);}bool same(int n,int m){ return findrt(n)==findrt(m);}void unit(int n,int m) //注意{ int fn,fm; fn=findrt(n); fm=findrt(m); if(fm==fn) return ; par[fn]=fm;}long long kur(){ sort(es,es+z,comp); init(x+y); long long ans=0; for(int i=0;i<z;i++) { edge e=es[i]; if(!same(e.u,e.v)) { unit(e.u,e.v); ans+=e.cost; } } return ans;}void solve(){ long long res=0; res=(x+y)*10000+kur(); printf("%lld\n",res);}int main(){ int t; cin>>t; while(t--) { getchar(); scanf("%d%d%d",&x,&y,&z); int a,b,c; for(int i=0;i<z;i++) { scanf("%d%d%d",&a,&b,&c); es[i].u=a; es[i].v=b+x; es[i].cost=-c; } solve(); } return 0;}
0 0
- 最小生成树_Conscription(POJ.3723)
- poj 3723 最小生成树
- POJ 3723 最小生成树
- poj 3723 Conscription ---最小生成树
- 【POJ】3723 Conscription 最小生成树
- poj 3723 Conscription (最小生成树)
- poj 3723 Kruskal最小生成树
- POJ 3723 Conscription(最小生成树)
- POJ 3723 Conscription【最小生成树】
- POJ, 3723 Conscription(最小生成树)
- POJ-3723 Conscription(最小生成树)
- poj 3723 Conscription(最小生成树)
- poj 最小生成树1258
- POJ 1258 最小生成树
- 最小生成树 poj 2485
- POJ-1258 最小生成树
- poj 1751 最小生成树
- poj 2421(最小生成树)
- 指针数组,数组指针,存放数组指针的数组,指向存放数组指针数组的指针,函数指针,函数指针数组,指向函数指针数组的指针
- android运行时权限解决办法(含有申请权限已授权、权限被拒绝、权限勾选不在提示的回调)
- unity 控件生命周期
- App开机启动
- Problem D: 二进制类(2)——运算符重载-hzauoj
- 最小生成树_Conscription(POJ.3723)
- 【深入Java虚拟机】之八:Java垃圾收集机制
- react+webpack入门(2)
- Spring Security 与Spring Boot结合的认证授权机制流程(二)
- JAVA(android)序列化与反序列化工具类
- 类变量、成员变量、实例变量、局部变量、静态变量、全局变量的定义与区别
- Sublime Text 3 快捷键总结
- 【C语言常识】mdk:Pragmas recognized by the compiler
- HDU1087 最简单的lis动态规划