POJ3268Silver Cow Party(单源最短路径变形)
来源:互联网 发布:淘宝定时上架什么意思 编辑:程序博客网 时间:2024/06/03 14:10
题意:给n个顶点和m条边的有向图,输出每一个顶点到顶点X和顶点X到每一个顶点的最短路径之和最大的那个数。
思路:从顶点X到每一个顶点的最短路径不难想到直接套用Dijkstra算法即可得到,难的是每一个顶点到X的最短路,这里有一个巧妙的就是将原来的有向图各条边取反向,再在X做一次单源最短路,即为每个点到X点的最短路径,两者相加然后取最大即可
#include <cstdio>#include <queue>#include <cstring>#include <iostream>#include <cstdlib>#include <algorithm>#include <vector>#include <map>#include <string>#include <set>#include <ctime>#include <cmath>#include <cctype>using namespace std;#define maxn 1005#define LL long longconst int INF = 1<<29;int cas=1,T;int mapp[maxn][maxn];int n,m,x;int dijkstra(){ int mins,v; int d[maxn]; int dd[maxn]; int vis[maxn]; for (int i = 1;i<=n;i++) { vis[i]=0; d[i]=mapp[x][i]; //从x点出发 dd[i]=mapp[i][x]; } for (int i = 1;i<=n;i++) { mins = INF; for (int j = 1;j<=n;j++) if (!vis[j] && d[j] < mins) { v=j; mins = d[j]; } vis[v]=1; for (int j = 1;j<=n;j++) if (!vis[j] && d[j] > mapp[v][j]+d[v]) d[j]=mapp[v][j]+d[v]; } memset(vis,0,sizeof(vis)); for (int i = 1;i<=n;i++) { mins = INF; for (int j = 1;j<=n;j++) if (!vis[j] && dd[j] < mins) { v=j; mins = dd[j]; } vis[v]=1; for (int j = 1;j<=n;j++) if (!vis[j] && dd[j] > mapp[j][v]+dd[v]) dd[j] = mapp[j][v]+dd[v]; } int ans = -1; for (int i = 1;i<=n;i++) ans = max(ans,d[i]+dd[i]); return ans;}int main(){scanf("%d%d%d",&n,&m,&x);for (int i = 1;i<=n;i++)for (int j = 1;j<=n;j++){if (i!=j)mapp[i][j]=INF; elsemapp[i][j]=0;}for (int i = 1;i<=m;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);mapp[a][b]=c;}printf("%d\n",dijkstra());//freopen("in","r",stdin);//scanf("%d",&T);//printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC);return 0;}
题目
0 0
- POJ3268Silver Cow Party(单源最短路径变形)
- poj3268Silver Cow Party(单源最短路径)
- poj3268Silver Cow Party——最短路变形
- POJ3268Silver Cow Party
- POJ3268Silver Cow Party~Dij算法+矩阵倒置
- poj3268Silver Cow Party之dijkstra解法
- poj3268Silver Cow Party最短路问题(dijkstra+邻接矩阵转置)
- poj3268 Silver Cow Party(最短路变形)
- poj3268 Silver Cow Party 单源最短路径dijkstra算法
- POJ3268-Silver Cow Party(最短路径)
- poj3268~Silver Cow Party(dijkstra+路径反转)
- POJ3268---Silver Cow Party (最短路径)
- [POJ](3268)Silver Cow Party ---最短路径(图)
- Silver Cow Party (SPFA+最短路径)
- POJ3268 Silver Cow Party(最短路径)
- Poj 3628 Silver Cow Party ( 最短路变形
- TOJ1693(Silver Cow Party)
- Silver Cow Party (Dijkstra)
- GCD总结0
- jquery,獲取父級對象索引失敗,未理解,另附別樣解決方案
- 腾讯QQ第三方登录1:申请接入(OAuth2.0协议)
- spinlock 学习记录
- 67. Remove Duplicates from Sorted Array
- POJ3268Silver Cow Party(单源最短路径变形)
- 机器视觉学习笔记(10)——使用鼠标获取像素点信息
- 10 整理的简答题
- cvCreateTrackbar() 添加滚动条调节参数
- 数组的区间调整
- Kafka Notes
- 【CodeForces 610B】Vika and Squares
- Tiny210 / Smart210 (S5PV210) U-BOOT(十)----DDR2初始化顺序
- java环境配置:svn+maven+java