POJ 3625 Building Roads(Prim水题)
来源:互联网 发布:什么软件可以出书 编辑:程序博客网 时间:2024/06/05 06:08
。很水,不说话了,直接睇代码吧
#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<queue>using namespace std;#define N 2010double x[N],y[N];double map[N][N],dist[N];bool vis[N];int n,m;double dis(double x,double y,double x1,double y1) {return sqrt((x1-x)*(x1-x)+(y1-y)*(y1-y));}double Prim(){double sum=0.0;int i,j;for(i=0;i<=n;i++){dist[i] = map[1][i];vis[i] = 0;}int u;for(i=0;i<=n;i++){double low = 99999999;u = 0;for(j=1;j<=n;j++){if( !vis[j] && dist[j] < low ){low = dist[j];u = j;}}if(low == 99999999)break;sum += low;vis[u] = true;for(j=1;j<=n;j++){if( !vis[j] && dist[j] > map[u][j] )dist[j] = map[u][j];}}return sum;}int main(){int i,j,u,v;while(~scanf("%d%d",&n,&m)){for(i=1;i<=n;i++)scanf("%lf%lf",&x[i],&y[i]);for(i=1;i<=n;i++){for(j=i+1;j<=n;j++)map[i][j] = map[j][i] = dis(x[i],y[i],x[j],y[j]);}for(i=0;i<m;i++){scanf("%d%d",&u,&v);map[u][v] = map[v][u] = 0;}memset(vis,false,sizeof(vis));printf("%.2f\n",Prim());}return 0;}
- POJ 3625 Building Roads(Prim水题)
- poj 3625 Building Roads (prim)
- poj 3625 Building Roads-Prim(最小生成树)
- POJ 3625 Building Roads
- poj 3625 Building Roads
- poj 3625 Building Roads
- POJ 3625(Building Roads)
- POJ 3625 Building Roads
- poj 3625 Building Roads
- poj-3625 Building Roads
- poj 3625 Building Roads
- POJ 3625 Building Roads
- poj 3625 Building Roads
- Building Roads(Prim+Kruskal)
- poj-3625 Building Roads kruskal
- POJ 3625 Building Roads【MST】
- POJ 3625 Building Roads 解题报告
- POJ 3625 Building Roads 最小生成树
- 求一个数是几位数
- 简单的javascript抽奖程序
- $.ajax()方法
- ACM 大牛的博客
- 机器学习——名词解释集锦
- POJ 3625 Building Roads(Prim水题)
- 解决wget下载文件名乱码的一些方法
- POJ 1423 求n!有多少位数
- Spring+Quartz实现定时任务的配置实例
- ORACLE STARTUP & SHUTDOWN
- 解决Extjs MVC store无法加载
- 水管漏水
- 如何解决Android中 Error generating final archive: Debug Certificate expired on的问题
- 一致性哈希算法(Consistent Hashing)