poj1751 highway
来源:互联网 发布:傅雷夫妇 死 知乎 编辑:程序博客网 时间:2024/05/21 22:53
prim算法稍加变化,看代码:
#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;#define maxn 1001#define inf 0xfffffffint n; //总点数int d[maxn][maxn];//村庄图int v[maxn];//已选标记int l[maxn];//点到已选点最短路径长度int p[maxn];int x[maxn],y[maxn]; void prim(){ memset(x,0,sizeof(x));//初始化,清零 for(int i=1;i<=n;i++) { l[i]=d[1][i]; p[i]=1; } v[0]=1; l[0]=0; //已选(0,0)为起点 for(int i=1;i<=n;i++) { int m=inf,temp=0; for(int j=0;j<=n;j++) { if(!v[j]&&m>l[j]) { m=l[temp=j]; } } //l[temp]=0; v[temp]=1; if(d[p[temp]][temp]!=0) { printf("%d %d\n",temp,p[temp]); } for(int j=1;j<=n;j++){ if(!v[j]&&l[j]>d[temp][j]) { l[j]=d[temp][j]; p[j]=temp; } } } } int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d %d",&x[i],&y[i]); for(int j=1;j<=i;j++) { d[i][j]=d[j][i]=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]); } } int m; scanf("%d",&m); int a,b; for(int i=1;i<=m;i++) { scanf("%d%d",&a,&b); d[a][b]=d[b][a]=0; } prim(); return 0;}
0 0
- poj1751 highway
- poj1751 Highway (Prim)
- poj1751
- Highway
- poj1751 Highways
- POJ1751 Highways
- POJ1751 Highways
- POJ1751 Highways
- poj1751 Highways
- poj1751——Highways
- poj1751-最小生成树
- POJ1751 Highways(kru)
- POJ1751->最小生成树
- pku1648Countryside Highway
- poj2485 Highway
- hihoCoder1090 Highway
- Highway Networks
- Highway Network
- JS预解析是什么?
- HDU1301&&POJ1251 Jungle Roads
- 原生ajax请求二次封装
- java基础知识大全
- 内存泄漏与内存溢出分析
- poj1751 highway
- js实现『加载更多』
- Hi,我们再来聊一聊Java的单例吧(转)
- Apache Commons FileUpload基础教程
- mysql三种指令
- Android Studio中使用自定义Android.jar缺少方法的一种解决方案
- JAVASE笔记第一天
- ssm框架重写
- PAT-A-1055. The World's Richest (25)