hdu1102 最小生成树
来源:互联网 发布:织梦数据库查询语句 编辑:程序博客网 时间:2024/06/05 15:26
#include<cstdio>#include<cmath>#include<cstring>#include<iostream>#include<algorithm>#include<queue>#include<string>using namespace std;#define INF 0x3f3f3f3ftypedef __int64 ll;struct node{ ll w; int u,v;} edge[105*105/2];int f[105];bool cmp(node a,node b){ return a.w<b.w;}int _find(int x){ if(x!=f[x]) f[x]=_find(f[x]); return f[x];}int main(){ int n; while(~scanf("%d",&n)) { int cnt=0; for(int i=1; i<=n; i++) { f[i]=i; for(int j=1; j<=n; j++) { ll a; scanf("%I64d",&a); if(i>j) { edge[cnt].w=a; edge[cnt].u=i; edge[cnt].v=j; cnt++; } } } sort(edge,edge+cnt,cmp); int t; int q; scanf("%d",&q); while(q--) { int a,b; scanf("%d%d",&a,&b); int fa=_find(a),fb=_find(b); if(fa!=fb) fa>fb?f[fa]=fb:f[fb]=fa; } ll ans=0; for(int i=0; i<cnt; i++) { int fa=_find(edge[i].u),fb=_find(edge[i].v); if(fa!=fb) { fa>fb?f[fa]=fb:f[fb]=fa; ans+=edge[i].w; } } printf("%I64d\n",ans); }}
0 0
- hdu1102最小生成树
- hdu1102 最小生成树
- hdu1102 最小生成树
- hdu1102 最小生成树
- HDU1102 prim 最小生成树
- hdu1102 kruscal最小生成树
- hdu1102 Constructing Roads 最小生成树+prim
- hdu1102 Constructing Roads 最小生成树Prim
- HDU1102 Constructing Roads 最小生成树
- hdu1102 Constructing Roads 最小生成树Prim
- Hdu1102 - Constructing Roads - 最小生成树
- HDU1102 Constructing Roads 【最小生成树Prim】
- HDU1102 Constructing Roads(最小生成树)
- hdu1102(Constructing Roads)--prim最小生成树
- HDU1102 Constructing Roads(最小生成树)
- HDU1102 Constructing Roads 最小生成树
- hdu1102 Constructing Roads------最小生成树
- HDU1102 Constructing Roads (最小生成树)
- 记录学习的点滴(Spring Bean的生命周期)
- java system.out.printf()的使用方法
- 重新设计实现CSipSimple呼叫记录分组功能
- F4端口复用
- iOS开发可以调节屏幕亮度并且上传APPstore
- hdu1102 最小生成树
- 欢迎使用CSDN-markdown编辑器
- 12章实例2
- Vuejs——(12)组件——动态组件
- shiro注解不生效(表象)
- iOS开发:UITableView的优化技巧-异步绘制Cell
- 深入理解RunLoop
- 用hml5实现留言功能
- 金纳米离子(实验部分)