POJ 3268
来源:互联网 发布:订房软件 编辑:程序博客网 时间:2024/06/05 10:46
最短路,使用两次Dijkstra算法,只是注意回来的时候起点和终点就好。
#include<stdio.h>#include<string.h>#include<algorithm>#define INF 1000000using namespace std;int mingo[1005];int minback[1005];int cost[1005][1005];int judge[1005];int n,m,target;void dijgo(int u){ for(int i=1;i<=n;i++) mingo[i]=cost[i][u]; judge[u]=1; for(int num=1;num<n;num++){ int k=-1; int min=INF; for(int i=1;i<=n;i++){ if(judge[i]==0&&min>mingo[i]){ min=mingo[i]; k=i; } //if(judge[i]==0) v=i; } if(k==-1) break; judge[k]=1; for(int i=1;i<=n;i++){ if(judge[i]==0&&mingo[i]>mingo[k]+cost[i][k]){ mingo[i]=mingo[k]+cost[i][k]; } } //printf("yes\n"); } return ;}void dijback(int u){ for(int i=1;i<=n;i++) minback[i]=cost[u][i]; judge[u]=1; for(int num=1;num<n;num++){ int k=-1; int min=INF; for(int i=1;i<=n;i++){ if(judge[i]==0&&min>minback[i]){ min=minback[i]; k=i; } } //if(k==-1) break; judge[k]=1; for(int i=1;i<=n;i++){ if(judge[i]==0&&minback[i]>minback[k]+cost[k][i]){ minback[i]=minback[k]+cost[k][i]; } } //printf("%d %d\n",k,minback[k]); } return ;}int main(){ int x,y,v; while(scanf("%d%d%d",&n,&m,&target)!=EOF){ for(int i=1;i<=n;i++){ mingo[i]=INF; minback[i]=INF; for(int j=1;j<=n;j++){ if(i==j) cost[i][j]=0; else cost[i][j]=INF; } } for(int i=0;i<m;i++){ scanf("%d%d%d",&x,&y,&v); cost[x][y]=v; } //printf("%d %d %d %d\n",cost[4][2],cost[2][1],cost[1][3],cost[3][4]); memset(judge,0,sizeof(judge)); dijgo(target); memset(judge,0,sizeof(judge)); dijback(target); int max=-1; for(int i=1;i<=n;i++){ //printf("%d %d\n",mingo[i],minback[i]); if(max<mingo[i]+minback[i]&&i!=target) max=mingo[i]+minback[i]; } printf("%d\n",max); } return 0;}
0 0
- POJ 3268
- poj 3268
- POJ 3268
- poj 3268
- POJ 3268
- poj 3268
- POJ 3268
- POJ 3268
- POJ 3268
- poj 3268
- POJ 3268
- POJ 3268
- POJ 3268
- 【POJ】3268
- POJ 3268
- poj 3268 dijkstra
- POJ 3268 dijkstra算法
- poj 3268 dijkstra
- 经典算法--快速排序的随机化版本
- 组队赛6:线段树离散化+树状数组并哈希
- Shell常见知识
- Sizeof与Strlen的区别与联系
- 宽字符
- POJ 3268
- C 语言随笔
- tilera netlib应用层协议栈-IP层实现方式
- Monkeyrunner学习之二(如何使用id去点击的方法)
- 行电1102 Constructing Roads
- 项目一(1)深复制体验
- String、StringBuffer和StringBuild的区别
- 自己动手写编辑器——Lumia Inspired by Atom
- Android-API