POJ 3268Silver Cow Party dijkstra();
来源:互联网 发布:linux 查看环境路径 编辑:程序博客网 时间:2024/05/16 10:05
题意:输入n,m,x,分别表示有n头牛,m条单向路径,以第x头牛(下用牛X表示)为起点。
每头牛都将会1.先拜访牛X,2.后返回自己原先的位置。求出所有牛花费时间中的最大值。
解题方法:首先,2.每头牛返回到自己原先位置,这个容易求,也就是求牛X到每头牛的最短时间(单源最短路)。
而求每头牛拜访牛X的时间,可以将题目所给的所有路径,全部调反,然后再求牛X到每头牛的最短时间(单源最短路)。
最后相加,找出最大值即可。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,m,s,dis1[1005],map[1005][1005],dis2[1005];bool vis[1005];const int inf=1e9;int dijkstra(){memset(vis,0,sizeof(vis));for(int i=1;i<=n;++i)dis1[i]=map[s][i];vis[s]=1;int u;for(int i=0;i<n-1;++i){int mins=inf;for(int j=1;j<=n;++j){if(dis1[j]<mins&&!vis[j]){u=j;mins=dis1[j];}}vis[u]=1;for(int j=1;j<=n;++j){dis1[j]=min(dis1[j],dis1[u]+map[u][j]);}}for(int i=1;i<=n;++i){for(int j=1;j<i;++j){int c=map[i][j];map[i][j]=map[j][i];map[j][i]=c;}}memset(vis,0,sizeof(vis));for(int i=1;i<=n;++i)dis2[i]=map[s][i];vis[s]=1;for(int i=0;i<n-1;++i){int mins=inf;for(int j=1;j<=n;++j){if(!vis[j]&&dis2[j]<mins){u=j;mins=dis2[j];}}vis[u]=1;for(int j=1;j<=n;++j){dis2[j]=min(dis2[j],dis2[u]+map[u][j]);}}int ans=-1;for(int i=1;i<=n;++i){ans=max(ans,dis1[i]+dis2[i]);}return ans;}int main(){while(scanf("%d%d%d",&n,&m,&s)==3){for(int i=0;i<=n;++i){for(int j=0;j<=n;++j)map[i][j]=inf;map[i][i]=0;}int a,b,c;for(int i=0;i<m;++i){scanf("%d%d%d",&a,&b,&c);map[a][b]=c;}printf("%d\n",dijkstra());}}
0 0
- POJ 3268 Silver Cow Party(Dijkstra算法)
- POJ 3268 - Silver Cow Party(dijkstra)
- POJ 3268 Silver Cow Party (Dijkstra~)
- POJ 3268 Silver Cow Party(dijkstra)
- poj 3268 Silver Cow Party , spfa , dijkstra
- POJ 3268 Silver Cow Party(Dijkstra)
- Dijkstra-POJ-3268-Silver Cow Party
- POJ 3268Silver Cow Party dijkstra();
- [POJ 3268 Silver Cow Party ]Dijkstra
- POJ - 3268----Silver Cow Party(Dijkstra)
- poj 3268 Silver Cow Party【dijkstra】
- POJ.3268 Silver Cow Party (Dijkstra)
- POJ 3268 Silver Cow Party(Dijkstra)
- poj 3268 Silver Cow Party Dijkstra 和SPFA
- poj 3268 Silver Cow Party dijkstra基础题!!!入门
- poj 3268 Silver Cow Party 最短路/dijkstra
- POJ 3268 Silver Cow Party 2个dijkstra
- POJ 3268 Silver Cow Party dijkstra单源最短路
- Perl语言入门(05 文件)
- javascript进阶(五)— — Promise初探
- iOS常用宏定义大全
- <python> 拿取命令列的參數值
- JS中Null与Undefined的区别
- POJ 3268Silver Cow Party dijkstra();
- 内部类
- 跨站脚本攻击(XSS)几种解决方案浅析
- 移动端的播放器设计经验:与VLC的考量点完全不同
- 空间插值概述
- 【u109】数字生成游戏(gen)
- MySql常用函数数学函数、加密函数等
- 快速幂算法
- 219.leetcode Contains Duplicate II(easy)[数组 滑动窗口]