poj 1751 Highways prim算法
来源:互联网 发布:1216nfh网络扫描驱动 编辑:程序博客网 时间:2024/04/19 18:11
题目的大意就是说给你几个点的坐标,并且有几个点之间路是已经修好了的,让你加入其他的边,使得边权和最小,最小生成树的问题,只是初始给了你固定的几条边而已。用prim算法比较好,因为prim算法比较适合稠密图,kruskal算法更适合稀疏图,而这个图每个点之间都要求长度,边比较多。
好了 上代码;
<span style="font-size:14px;">#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <algorithm>using namespace std;int dp[1000][1000];int dup[1000];int dis[10000];int vis[1000];int x[1000],y[1000];int n;int prim(){ int i,next,k; int count=0; for(int i=1;i<=n;i++) { dis[i]=dp[1][i]; dup[i]=1;//此时是dis存的值全部是1到各个点的距离 } vis[1]=1; count++; while(count<n) { int min=0x3f3f3f; for(i=1;i<=n;i++) { if(!vis[i]&&dis[i]<min) { min=dis[i]; next=i; } } if(dp[dup[next]][next]) { printf("%d %d\n",dup[next],next); } vis[next]=1;//更新点 count++; for(i=1;i<=n;i++) { if(!vis[i]&&dis[i]>dp[next][i]) { dis[i]=dp[next][i]; dup[i]=next;//用dup[i]=next表示如果此时是i与next相连 } } }}int main(){ while(scanf("%d",&n)!=EOF) { memset(vis,0,sizeof(vis)); for(int i=1;i<=n;i++) { scanf("%d %d",&x[i],&y[i]); } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(i==j) dp[i][j]=0; else { dp[i][j]=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]); dp[j][i]=dp[i][j]; } } } int m; scanf("%d",&m); for(int i=1;i<=m;i++) { int x1,x2; scanf("%d %d",&x1,&x2); dp[x1][x2]=dp[x2][x1]=0;//直接把给的边权值等于0 } prim(); } return 0;}</span>
0 0
- poj 1751 Highways prim算法
- poj 1751 Highways (prim算法)
- Poj 1751 Highways(prim)
- Highways POJ 1751 【Prim || Kruscal】
- poj 1751 Highways ( 最小生成树--prim算法 )
- POJ 2485 Highways(prim算法)
- 最小生成树Prim算法 Highways POJ
- POJ 1751 Highways(最小生成树prim)
- poj 1751 Highways 最小生成树 prim
- POJ 1751Highways(Prim存储路径模板)
- poj 1751 Highways (prim和kruskal)
- Highways POJ 2485【Prim】
- poj 2485 Highways ( prim )
- poj 2485 Highways(prim)
- POJ - 2485 Highways(prim算法,Kruskal算法)
- POJ 2485-Highways 最小生成树Prim算法
- POJ 2485 Highways 图论 prim算法 最小生成树
- POJ 2485 Highways 最小生成树 prim算法
- 春节后开工,把这9句话写在你的办公桌上
- 面试笔试杂项积累-leetcode 311-320
- 自定义日期和时间选择组合控件
- 【JAVA】10、程序的3种结构
- 匿名方法和lambda表达式
- poj 1751 Highways prim算法
- 面试笔试杂项积累-leetcode 321-325
- ***使用spring webflow遇到的问题-2***
- 我的Mac之路(1)—— 安装虚拟机,以及打造VIM IDE for Python
- 1068. Find More Coins (30)
- 马尔科夫收敛定理
- Unknown column 's.score' in 'having clause' 0.00020 sec error
- LeetCode 34. Search for a Range
- swift和oc混编