HDU 1875畅通工程再续 Kruskal求解
来源:互联网 发布:丫2系列电动机绕组数据 编辑:程序博客网 时间:2024/06/05 11:32
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=66965#problem/N
题意:给点每个点的坐标及连通条件,求最小代价。
这题真的傻逼了,我居然,直接把距离平方进行相加,真是醉了。。。。其他没啥值的注意的地方。
PS:看到有人double的输出用的是%lf也可以AC,但是,还是的注意一下,double的输出使用%f,有的题WA过。
代码:
#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;struct edge{ int u,v; double w; bool operator<(const edge& a)const{ return w<a.w; }}E[10010];int X[110],Y[110];int C,tot;int pre[110];int find(int x){ int t=x; while(t!=pre[t]) t=pre[t]; while(x!=t) pre[x]=t,x=pre[x]; return t;}void Kruskal(){ for(int i=0;i<=C;i++) pre[i]=i; int cnt=1; double sum=0; for(int i=0;i<tot;i++){ int u=E[i].u,v=E[i].v; int fu=find(u),fv=find(v); if(fu==fv) continue; pre[fv]=fu;sum+=E[i].w;cnt++; if(cnt==C) break; } if(cnt<C) cout<<"oh!\n"; else printf("%.1f\n",sum*100);}int main(){ //freopen("D:\\in.txt","r",stdin); int T;cin>>T; while(T--){ cin>>C; for(int i=0;i<C;i++) scanf("%d %d",X+i,Y+i); tot=0; for(int i=0;i<C;i++) for(int j=i+1;j<C;j++){ int t=(X[i]-X[j])*(X[i]-X[j])+(Y[i]-Y[j])*(Y[i]-Y[j]); if(t<100 || t>1000000) continue; E[tot++]=(edge){i,j,sqrt(t)}; } sort(E,E+tot); Kruskal(); } return 0;}
0 0
- HDU 1875畅通工程再续 Kruskal求解
- hdu 1875 畅通工程再续 (kruskal)
- hdu 1875 畅通工程再续(Kruskal)
- hdu 1875 畅通工程再续(Kruskal)
- HDU 1875--畅通工程再续【Kruskal】
- HDU 1875 畅通工程再续(kruskal)
- hdu 1875 畅通工程再续(最小生成树Kruskal)
- HDU 1875 畅通工程再续(Kruskal + 并查集)
- HDU 1875 畅通工程再续 (Kruskal + hash)
- hdu 1875 畅通工程再续【prim&kruskal】
- hdu 1875 畅通工程再续(kruskal || prim)
- hdu 1875 畅通工程再续(Kruskal算法)
- HDU 1875 畅通工程再续(Kruskal算法)
- HDU 1875 畅通工程再续【最小生成树Kruskal】
- HD 1875 畅通工程再续 【Kruskal】
- hdu 1875 畅通工程再续 (kruskal算法+并查集)
- HDU-#1875 畅通工程再续(Prim & Kruskal+并查集)
- hdu 1875 畅通工程再续(kruskal算法计算最小生成树)
- JAVA多线程和并发基础面试问答
- Linux下chkconfig命令详解
- Service(五)跨应用绑定 Service并通信(使用AIDL)
- Oracle数据泵原理及应用
- web基础
- HDU 1875畅通工程再续 Kruskal求解
- 玩命牛的成长记录(十三)——异步
- iOS开发笔记3——IOS开发内存警告Memory Warning和ViewController的生命周期的问题
- OJ商品销售
- centos添加yum源
- [积累]怎样用图像背景填充文字
- 面试记录小结
- 玩命牛的成长记录(十三)——ajax实现局部更新
- centos安装firefox的flashplayer插件