hdu-1875-畅通工程再续
来源:互联网 发布:手机主题壁纸软件 编辑:程序博客网 时间:2024/05/29 14:17
畅通工程再续
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 14875 Accepted Submission(s): 4603
Problem Description
相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小组RPRush对百岛湖的情况充分了解后,决定在符合条件的小岛间建上桥,所谓符合条件,就是2个小岛之间的距离不能小于10米,也不能大于1000米。当然,为了节省资金,只要求实现任意2个小岛之间有路通即可。其中桥的价格为 100元/米。
Input
输入包括多组数据。输入首先包括一个整数T(T <= 200),代表有T组数据。
每组数据首先是一个整数C(C <= 100),代表小岛的个数,接下来是C组坐标,代表每个小岛的坐标,这些坐标都是 0 <= x, y <= 1000的整数。
每组数据首先是一个整数C(C <= 100),代表小岛的个数,接下来是C组坐标,代表每个小岛的坐标,这些坐标都是 0 <= x, y <= 1000的整数。
Output
每组输入数据输出一行,代表建桥的最小花费,结果保留一位小数。如果无法实现工程以达到全部畅通,输出”oh!”.
Sample Input
2210 1020 2031 12 21000 1000
Sample Output
1414.2oh!
prim+并查集
#include<stdio.h>#include<math.h>#define M 0x7fffffdouble a[102][102];int b[102][2],c[102];void prim(int n){ int i,j,k,used[102]={0}; double sum=0.0,min,dis[102]; for(i=1;i<=n;i++) dis[i]=a[1][i]; for(i=2;i<=n;i++) { min=M; for(j=2;j<=n;j++) if(!used[j]&&min>dis[j]) { k=j; min=dis[j]; } sum+=dis[k]; used[k]=1; for(j=1;j<=n;j++) if(!used[j]&&dis[j]>a[k][j]) dis[j]=a[k][j]; } printf("%.1lf\n",sum*100);}int find(int t){ while(c[t]!=t) t=c[t]; return t;}void merge(int x,int y){ int fx,fy; fx=find(x); fy=find(y); if(fx!=fy) c[fx]=fy;}int main(){ int s,n,x,y,i,j; scanf("%d",&s); while(s--) { double d; scanf("%d",&n); for(i=1;i<=n;i++) { c[i]=i; scanf("%d%d",&b[i][0],&b[i][1]); a[i][i]=0; for(j=1;j<i;j++) { d=sqrt((b[i][0]-b[j][0])*(b[i][0]-b[j][0])+(b[i][1]-b[j][1])*(b[i][1]-b[j][1])); if(d>=10.0&&d<=1000.0) { a[i][j]=a[j][i]=d; merge(i,j); } else a[i][j]=a[j][i]=M; } } for(j=0,i=1;i<=n;i++) if(c[i]==i) j++; if(j!=1) printf("oh!\n"); else prim(n); } return 0;}
0 0
- HDU 1875 畅通工程再续
- HDU 1875 畅通工程再续
- acm hdu 1875 畅通工程再续
- hdu 1875 畅通工程再续 (kruskal)
- hdu 1875 畅通工程再续
- HDU 1875 畅通工程再续
- hdu 1875 畅通工程再续
- hdu 1875 畅通工程再续
- hdu 1875 畅通工程再续
- HDU 1875 畅通工程再续
- hdu 1875 畅通工程再续
- hdu 1875 畅通工程再续
- hdu 1875 畅通工程再续
- HDU-1875-畅通工程再续
- HDU-畅通工程再续-1875
- hdu 1875 畅通工程再续
- HDU 1875 畅通工程再续
- hdu(1875)畅通工程再续
- Maven 问题,一启动Eclipse之后,Maven更新自动开始,解决。updating maven dependencies
- 深入浅出游戏算法(4)-unity3d算法(1)-球转动
- checkbox 引用样式用jQuery实现选中
- Android学习路线(十四)Activity生命周期——停止和重启(Stopping and Restarting)一个Activity
- android Eclipse NDk配置
- hdu-1875-畅通工程再续
- hdoj.1106 排序 20140811
- hdu-oj 1465 不容易系列之一
- fl2440内核linux 3.0移植-----UDA1341音频驱动和mp3播放
- shenmfsa
- hdu 3499 Flight dijkstra 变形
- html下拉菜单提交后保留选中值
- APK完整性校验代码
- 激光打印机页面纵向左边或右边字符丢失故障分析