hdu 1875 畅通工程再续 最小生成树prim
来源:互联网 发布:java 排序 编辑:程序博客网 时间:2024/03/29 17:49
题目链接
题意:给出n个点的坐标,两个点距离大于10小于1000可以建边,求最小生成树。
根据限定条件建图,跑一遍prim。
#include <iostream>#include<cstdio>#include<cstring>#include<cmath>#define N 220#define INF 1e11using namespace std;double d[N],mp[N][N],x[N],y[N];int n,v[N];void prim(){ for(int i=0;i<n;i++) d[i]=INF,v[i]=0; d[0]=0; for(int i=0;i<n;i++) { double mmin=INF; int t=-1; for(int j=0;j<n;j++) if(!v[j]&&mmin>d[j]) mmin=d[t=j]; if(t==-1) { cout<<"oh!"<<endl; return ; } v[t]=1; for(int j=0;j<n;j++) if(!v[j]) d[j]=min(d[j],mp[t][j]); } double ans=0; for(int i=0;i<n;i++) ans+=d[i]; printf("%.1lf\n",ans*100);}int main(){ int T; cin>>T; while(T--) { cin>>n; for(int i=0;i<n;i++) scanf("%lf%lf",&x[i],&y[i]); for(int i=0;i<n;i++) for(int j=0;j<n;j++) { double t=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])); if(t>=10&&t<=1000) mp[i][j]=t; else mp[i][j]=INF; } prim(); }}
0 0
- hdu 1875 畅通工程再续(最小生成树Prim)
- hdu 1875畅通工程再续-prim最小生成树
- hdu 1875 畅通工程再续 最小生成树prim
- HDU 1875 畅通工程再续 Prim最小生成树
- hdu 1875 畅通工程再续 【最小生成树-prim】
- hdoj 1875 畅通工程再续 ( 最小生成树--prim )
- 【最小生成树+Prim】杭电 hdu 1875 畅通工程再续
- HDU 1875 畅通工程再续 prim算法 最小生成树
- HDU-1875 畅通工程再续(最小生成树[Prim])
- Prim算法-最小生成树(附题:HDU-1875 畅通工程再续)
- hdu 1875 畅通工程再续(最小生成树,prim)
- HDU Problem 1875 畅通工程再续 【最小生成树Prim】
- 最小生成树 Prim hdu1875 畅通工程再续
- HDU1875 畅通工程再续 【最小生成树Prim】
- hdu1575畅通工程再续【最小生成树】cruskal&prim
- hdu 畅通工程再续(最小生成树)(Prim算法 && Kruskal算法)
- hdu 1233 还是畅通工程(Prim最小生成树)
- HDU 1863 畅通工程(最小生成树prim算法)
- Java实现FTP上传下载功能
- 调试加载第三方sdk nib资源失败的坑
- Android EditText点击两次才能响应,解决办法
- 自定义Dialog,去除系统默认黑色背景以及边框并设置dialog的显示位置
- Android最佳性能实践(三)——高性能编码优化
- hdu 1875 畅通工程再续 最小生成树prim
- linux下用core和gdb查询出现"段错误"
- 字符串匹配-KMP算法
- 学习git笔记---为了装X为奋斗= =b 【持续更新】
- hibernate的配置文件
- c++ string主要的用法
- java--接口和内部类
- HorizontalScrollView仿QQ侧滑删除
- errorC4146 errorC4308 errorC4532 errorC4533 errorC4700 errorC4703 errorC4789 errorC4995 errorC4996