POJ-2387 Til the Cows Come Home
来源:互联网 发布:中国警察智识数据库 编辑:程序博客网 时间:2024/04/28 13:41
//这道题诗裸的dij,但是坑点就是要考虑重边问题,值得纪念//
AC代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define N 1005const int inf=1<<29;int vis[N],w[N][N],d[N];int t,n;void dij(){ int i,j; for(i=1;i<=n;i++) { d[i]=w[1][i]; } d[1]=0; vis[1]=1; for(i=1;i<=n;i++) { int now=inf,x; for(j=1;j<=n;j++) { if(!vis[j]&&d[j]<now)//每个点进行松弛操作 { now=d[j]; x=j; } else if(!vis[j]&&d[j]==now)//考虑重边问题 { now=d[j]; x=j; } } vis[x]=1; for(j=1;j<=n;j++) { if(!vis[j]&&d[j]>d[x]+w[x][j])//记录每个点的最短路 { d[j]=d[x]+w[x][j]; } else if(!vis[j]&&d[j]==d[x]+w[x][j]) { d[j]=d[x]+w[x][j]; } } }}int main(){ while(scanf("%d%d",&t,&n)!=EOF) { int i,j; memset(vis,0,sizeof(vis)); for(i=1;i<n;i++) { for(j=1;j<=n;j++) { if(i==j) { w[i][j]=0;//当i==j时,他们的距离为0 } else { w[i][j]=w[j][i]=inf;//初始化w[i][j]为最大值 } } } int u,v,c; while(t--) { scanf("%d%d%d",&u,&v,&c); if(c<w[u][v]) { w[u][v]=w[v][u]=c; } else if(c==w[u][v]) { w[u][v]=w[v][u]=c; } } dij(); printf("%d\n",d[n]);//直接输出d[n]就可以表示1到n的最短距离 } return 0;}
0 0
- POJ 2387 Til the Cows Come Home
- poj 2387 Til the Cows Come Home
- poj 2387 Til the Cows Come Home
- poj 2387 Til the Cows Come Home
- POJ 2387 Til the Cows Come Home
- POJ 2387 Til the Cows Come Home
- POJ 2387 Til the Cows Come Home
- Poj 2387 Til the Cows Come Home
- poj 2387 Til the Cows Come Home
- POJ 2387 Til the Cows Come Home
- poj 2387 Til the Cows Come Home
- POJ-2387-Til the Cows Come Home
- poj 2387 Til the Cows Come Home
- poj 2387 Til the Cows Come Home
- POJ 2387 Til the Cows Come Home
- POJ 2387 Til the Cows Come Home
- POJ 2387 Til the Cows Come Home
- POJ 2387 Til the Cows Come Home
- DesignPattern_Java:Composite Pattern
- android传感器sensor
- 使用 Math 类操作数据
- 网络编程
- 今日头条核心技术“个性推荐算法”揭秘
- POJ-2387 Til the Cows Come Home
- RS485总线最多可以负载多少个设备
- 面试经典问题
- 搭建聊天的界面、输入图片和文本
- java反射机制之基础
- 我和敏捷开发的故事--敏捷角色PO
- 利用json转变Python格式
- OpenGL GLSL
- 删数问题-注意贪心策略-不严格