HDU 3371 最小生成树 kruskal
来源:互联网 发布:mac自带截图快捷键 编辑:程序博客网 时间:2024/06/05 02:57
赤裸裸的最小生成树,,直接上kruskal,最后判断一下能不能全都连起来,并查集这几天真是写到吐了。。。
还有啊,,一样的代码用g++交就tle了,c++就过了,简直了,,,,
#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>using namespace std;int father[510];int find(int x){ if(x==father[x]) return x; father[x]=find(father[x]); return father[x];}struct s{ int u,v,w;};s a[25510];bool cmp(s x,s y){ return x.w<y.w;}int main(){ int i,j,n,m,k,t,T,ans,x,y,fu,fv,fx,fy; scanf("%d",&T); while(T--) { scanf("%d%d%d",&n,&m,&k); for(i=0;i<510;i++) father[i]=i; for(i=1;i<=m;i++) { scanf("%d%d%d",&a[i].u,&a[i].v,&a[i].w); } while(k--) { scanf("%d",&t); scanf("%d",&x); t--; while(t--) { scanf("%d",&y); fy=find(y); fx=find(x); if(fy!=fx) father[fy]=fx; } } int temp=0; for(i=1;i<=n;i++) if(i==father[i]) temp++; ans=0; sort(a+1,a+m+1,cmp); if(temp!=1) for(i=1;i<=m;i++) { fu=find(a[i].u); fv=find(a[i].v); if(fu!=fv) { ans+=a[i].w; father[fu]=fv; temp--; if(temp==1) break; } } if(temp==1) printf("%d\n",ans); else printf("-1\n"); } return 0;}
0 0
- HDU 3371 最小生成树 kruskal
- hdu 3371 Connect the Cities 最小生成树(kruskal算法)
- hdu 3371 Connect the Cities(最小生成树kruskal)
- hdu 1233 最小生成树kruskal版
- HDU-1233(kruskal求最小生成树)
- hdu 1162 最小生成树(Kruskal)
- HDU 1233 prim kruskal最小生成树
- HDU 1879 最小生成树 prim + kruskal
- hdu 1233 Kruskal求最小生成树
- 最小生成树(kruskal) hdu 1233
- HDU 4463 Outlets (Kruskal 最小生成树)
- HDU 4786(最小生成树 kruskal)
- hdu 1233 最小生成树kruskal
- hdu 1301(最小生成树kruskal)
- HDU 4750 最小生成树 kruskal
- 最小生成树Kruskal
- kruskal 最小生成树
- 最小生成树 kruskal
- 博客开始整理了
- 翻转句子中单词的顺序
- HDOJ 题目1055Color a Tree(贪心,并查集)
- java-汉字转换拼音工具
- FTP API函数
- HDU 3371 最小生成树 kruskal
- 读v_JULY_v整理笔试题博客有感,整理些答案。
- 在Linux下编写C程序,怎么检查程序是否有内存泄漏?
- django+celery+RabbitMQ 环境配置
- Java中Properties类的使用
- 客户端封装数据为json格式的数据提交到服务端的方法
- PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解,$_SERVER['HTTP_X_FORWARDED_HOST']
- Codeforces Round #262 (Div. 2)
- 阿迪达斯智能足球使用Nordic Semiconductor蓝牙智能无线技术