Poj(2560),最小生成树,Prim
2016-08-02 10:45
288 查看
题目链接:http://poj.org/problem?id=2560
只想说“全都是套路”,关键建图。
只想说“全都是套路”,关键建图。
#include <stdio.h> #include <string.h> #include <math.h> #define INF 0x3f3f3f3f int n; double maps[300][300]; bool vis[300]; double dis[300]; struct Point { double x; double y; }points[300]; double Prim() { memset(vis,false,sizeof(vis)); for(int i=1;i<=n;i++) dis[i] = INF; dis[1] = 0; double ans =0; for(int i=1;i<=n;i++) { double tmp = INF; int k =0; for(int j=1;j<=n;j++) { if(!vis[j]&&dis[j]<tmp) { tmp = dis[j]; k= j; } } vis[k]=true; ans+=tmp; for(int i=1;i<=n;i++) { if(!vis[i]&&dis[i]>maps[k][i]) dis[i] = maps[k][i]; } } return ans; } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%lf%lf",&points[i].x,&points[i].y); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { double x = points[i].x - points[j].x; double y = points[i].y - points[j].y; maps[i][j] = sqrt(x*x+y*y); } } printf("%.2lf\n",Prim()); return 0; }
相关文章推荐
- POJ2560 Freckles(prim最小生成树)
- poj 2560最小生成树 prim
- poj 2485 Highways prim最小生成树 基础 球最小生成树中得最大边
- poj 2485 Highways -----最小生成树。prim
- poj 2031 最小生成树(prim)
- poj 1258 【最小生成树】【prim】【纯模板】
- POJ 1789 prim求最小生成树
- poj 2421 Constructing Roads prim最小生成树 基础!!!
- Prim最小生成树【poj 2349 Arctic Network;poj 1287 NetWorking】
- poj 2349 (最小生成树 Prim)
- 生成树最小生成树poj 1258 prim
- poj 1258 Agri-Net-----最小生成树 prim
- poj 1789 Prim最小生成树
- poj 1789 Truck History(最小生成树 prim)
- poj 1251 Jungle Roads prim最小生成树基础
- POJ1258 Agri-Net(简单的prim最小生成树)
- POJ1251—最小生成树问题的Prim实现
- POJ2349—最小生成树的Kruskal和Prim实现
- poj -2560-Freckles-最小生成树
- poj 2377-prim(最小生成树的最大边权的和)