HDU 1875 畅通工程再续(MST)
来源:互联网 发布:长效避孕药 知乎 编辑:程序博客网 时间:2024/06/05 12:47
题目链接:
HDU 1875 畅通工程再续
分析:
把不符合条件的边忽略再检查下所有点都连通就行了。
//1676K 62MS#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int maxn=110;const int INF=0x3f3f3f3f;int T,n,tot;int pre[maxn];double ans;struct Point{ int x,y;}point[maxn];struct Edge{ int u,v; double w;}edge[maxn*maxn];void init(){ for(int i=0;i<maxn;i++) pre[i]=i;}int find(int x){ return pre[x]==x?x:pre[x]=find(pre[x]);}double Distance(struct Point a,struct Point b){ int xx=a.x-b.x; int yy=a.y-b.y; return sqrt(xx*xx+yy*yy);}bool cmp(struct Edge a,struct Edge b){ return a.w<b.w;}int main(){#ifdef LOCAL freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout);#endif scanf("%d",&T); while(T--) { init(); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d%d",&point[i].x,&point[i].y); tot=0; for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) { edge[tot].u=i; edge[tot].v=j; edge[tot].w=Distance(point[i],point[j]); tot++; } } sort(edge,edge+tot,cmp); ans=0; for(int i=0;i<tot;i++) { if(edge[i].w>1000||edge[i].w<10) continue; int u=edge[i].u; int v=edge[i].v; int fu=find(u); int fv=find(v); if(fu==fv) continue; pre[fu]=fv; ans+=edge[i].w; } int com=find(1); int flag=0; for(int i=2;i<=n;i++) { if(find(i)!=com) { flag=1; break; } } if(flag) printf("oh!\n"); else printf("%.1f\n",ans*100); } return 0;}
0 0
- [MST] hdu 1875 畅通工程再续
- HDU 1875 畅通工程再续(MST)
- hdu 1875 畅通工程再续(MST)
- 畅通工程再续(MST)
- 畅通工程再续(MST)
- HDU -- 1863 畅通工程 (mst)
- HDU -- 1233 还是畅通工程(mst)
- HDU -- 1789 继续畅通工程(mst)
- HDU 1233 还是畅通工程 (MST)
- hdu 1233 还是畅通工程(MST)
- hdu 1863 畅通工程(MST,prim)
- 【权值初始化+有条件的MST】hdu 1875 畅通工程再续
- 畅通工程(MST)
- 畅通工程(MST)
- [MST]HDU 1863 畅通工程
- hdu(1875)畅通工程再续
- hdu 1102 Constructing Roads +1879 继续畅通工程(MST)
- HDU 1233 还是畅通工程(MST裸题)
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- 常用hql
- JAVA中length、length()、size()的区别
- SpringMVC系列核心:处理请求流程
- 强大的数据库操作类DBHelper
- HDU 1875 畅通工程再续(MST)
- UVA 753 (最大流)
- Oracle Linux 6.5 安装Oracle 11G 配置
- 关于spring 注入中循环 ,环形依赖问题的明确
- "Program received signal SIGPIPE, Broken pipe."解决
- K大的 数
- Android教程之如何使用自定义字体
- 解决xshell 中文乱码
- 开篇:准备开始写SQL的成长历程啦~