hdu 畅通工程再续
http://acm.hdu.edu.cn/showproblem.php?pid=1875
- #include <cstdio>
- #include <cstring>
- #include <cmath>
- #include <algorithm>
- #define maxn 1001
- using namespace std;
- const int inf=<<;
- int n;
- double g[maxn][maxn];
- bool vis[maxn];
- double dis[maxn];
- double sum;
- bool flag=true;
- struct node
- {
- int x,y;
- }p[maxn];
- int sqr(int x)
- {
- return x*x;
- }
- double dist(int x1,int y1,int x2,int y2)
- {
- return sqrt(sqr(x1-x2)+sqr(y1-y2));
- }
- void prim()
- {
- memset(vis,false,sizeof(vis));
- for(int i=; i<n; i++) dis[i]=g[][i];
- dis[]=;
- vis[]=true;
- for(int i=; i<n; i++)
- {
- double m=(double)inf;
- int x;
- for(int y=; y<n; y++) if(!vis[y]&&dis[y]<m) m=dis[x=y];
- if(m==inf){flag=false;break;}
- sum+=m;
- vis[x]=true;
- for(int y=; y<n; y++) if(!vis[y]&&dis[y]>g[x][y]) dis[y]=g[x][y];
- }
- }
- int main()
- {
- int t;
- scanf("%d",&t);
- while(t--)
- {
- scanf("%d",&n);
- for(int i=; i<; i++)
- {
- for(int j=; j<; j++)
- {
- if(i==j) g[i][j]=;
- else
- g[i][j]=g[j][i]=inf;
- }
- }
- for(int i=; i<n; i++)
- {
- scanf("%d%d",&p[i].x,&p[i].y);
- }
- for(int i=; i<n; i++)
- {
- for(int j=; j<n; j++)
- {
- if(i!=j){
- double d=dist(p[i].x,p[i].y,p[j].x,p[j].y);
- if(d>=10.0&&d<=1000.0) g[i][j]=d;
- }
- }
- }
- flag=true;
- sum=0.0;
- prim();
- if(!flag) printf("oh!\n");
- else
- printf("%.1lf\n",(sum*));
- }
- return ;
- }
hdu 畅通工程再续的更多相关文章
- hdu 1875 畅通工程再续(prim方法求得最小生成树)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1875 /************************************************* ...
- HDU 1875 畅通工程再续 (prim最小生成树)
B - 畅通工程再续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit S ...
- (最小生成树) 畅通工程再续 -- HDU --1875
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1875 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- HDU 1875 畅通工程再续 (最小生成树)
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU 1875 畅通工程再续 (最小生成树)
畅通工程再续 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/M Description 相信大家都听说一个"百岛湖&q ...
- HDU 1875:畅通工程再续(最小生成树)
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU 1875 畅通工程再续(kruskal)
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU - 1875_畅通工程再续
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Desc ...
- hdu1875 畅通工程再续 最小生成树并查集解决---kruskal
http://acm.hdu.edu.cn/showproblem.php?pid=1875 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的 ...
随机推荐
- BZOJ1640: [Usaco2007 Nov]Best Cow Line 队列变换
1640: [Usaco2007 Nov]Best Cow Line 队列变换 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 493 Solved: 2 ...
- USENIX 最佳论文奖:擦除 Windows Azure 存储编码
我们发表了一篇介绍Windows Azure 存储如何用编码方式擦除数据的论文,此论文在 2012 年 6 月的 USENIX 技术年会上荣获最佳论文奖.这是 MicrosoftResearch ...
- openstack 手动 部署安装调试
Virtual Interface creation failed
- VC用OLE方式读写Excel
前几天要做一个项目,需要读取Excel中的数据.从网上查资料发现,主要是有两种方式.一是把Excel表当成数据库使用ODBC读写,这样操作起来就跟操作Access数据库似的.但这种方式效率比较低.另一 ...
- windows下php+apache+mysql环境搭建
在Windows 7下进行PHP环境搭建,首先需要下载PHP代码包和Apache与Mysql的安装软件包. PHP版本:php-5.3.2-Win32-VC6-x86,VC9是专门为IIS定制的,VC ...
- rpm软件包类型
rpm软件包 在linux世界里有两种流行的包管理方式,分别是redhat系的rpm和debian系的deb.其中rpm是RedHat Package Manager(RedHat软件包管理工具)的简 ...
- 锚点链接和hash属性
相信大家挺经常见过这样一个效果.有一个很长很长的页面,分成好几部分,目录中一点击,就能定位到页面某个位置. 例如:有这样一个目录,例如你点击一下“HTML”,就会直接跳转到“HTML”的页面位置 这就 ...
- jquery中attr与pror
- (转)asp.net(C#)手记之Repeater与两级菜单
先来张图片说明下我们要实现的菜单: 这个菜单只实现了2级哈. 我采用的方法是嵌套2个Repeater. 先看下数据库中的表结构: 数据: 上代码: aspx: <asp:Repeater ID= ...
- SVN中trunk,branches,tags用法详解
原文地址:http://www.cnblogs.com/dafozhang/archive/2012/06/28/2567769.html Subversion有一个很标准的目录结构,是这样的.比如项 ...