[POJ](3268)Silver Cow Party ---最短路径(图)
来源:互联网 发布:linux cdn服务器搭建 编辑:程序博客网 时间:2024/05/16 15:10
Description
One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big cow party to be held at farm #X (1 ≤ X ≤ N). A total of M (1 ≤ M ≤ 100,000) unidirectional (one-way roads connects pairs of farms; road i requires Ti (1 ≤ Ti ≤ 100) units of time to traverse.
Each cow must walk to the party and, when the party is over, return to her farm. Each cow is lazy and thus picks an optimal route with the shortest time. A cow's return route might be different from her original route to the party since roads are one-way.
Of all the cows, what is the longest amount of time a cow must spend walking to the party and back?
Input
Lines 2..M+1: Line i+1 describes road i with three space-separated integers: Ai, Bi, and Ti. The described road runs from farm Ai to farm Bi, requiring Ti time units to traverse.
Output
Sample Input
4 8 21 2 41 3 21 4 72 1 12 3 53 1 23 4 44 2 3
Sample Output
10
Hint
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define INF 0x3f3f3f3fint n,m,x;int mmap[1005][1005];bool vis[1005];bool visback[1005];int dist[1005];int distback[1005];using namespace std;void dijkstra(){ for(int i=1;i<=n;i++) { dist[i]=mmap[i][x]; distback[i]=mmap[x][i]; } int k; int mmin; for(int i=1;i<=n;i++) { mmin=INF; for(int j=1;j<=n;j++) { if(!vis[j] && dist[j]<mmin) { mmin=dist[j]; k=j; } } vis[k]=true; for(int j=1;j<=n;j++) { if(!vis[j]&&dist[k]+mmap[j][k]<dist[j]) dist[j]=dist[k]+mmap[j][k]; } } for(int i=1;i<=n;i++) { mmin=INF; for(int j=1;j<=n;j++) { if(!visback[j] && distback[j]<mmin) { mmin=distback[j]; k=j; } } visback[k]=true; for(int j=1;j<=n;j++) { if(!visback[j]&&distback[k]+mmap[k][j]<distback[j]) distback[j]=distback[k]+mmap[k][j]; } }}int main(){ int u,v,w; while(scanf("%d %d %d",&n,&m,&x)!=EOF) { //memset(mmap,0x3f,sizeof(mmap)); memset(dist,0,sizeof(dist)); memset(distback,0,sizeof(distback)); memset(vis,false,sizeof(vis)); memset(visback,false,sizeof(vis)); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(i!=j) mmap[i][j]=INF; else mmap[i][j]=0; } } while(m--) { scanf("%d %d %d",&u,&v,&w); if(w<mmap[u][v]) mmap[u][v]=w; } dijkstra(); int mmax=-1; for(int i=1;i<=n;i++) { mmax=max(mmax,dist[i]+distback[i]); } printf("%d\n",mmax); } return 0;}
- [POJ](3268)Silver Cow Party ---最短路径(图)
- poj 3268 Silver Cow Party(最短路径)
- POJ 3268 Silver Cow Party(最短路径dijkstra算法)
- POJ 3268 Silver Cow Party(最短路径之迪杰斯特拉算法)
- POJ3268 Silver Cow Party(最短路径)
- POJ3268-Silver Cow Party(最短路径)
- POJ3268---Silver Cow Party (最短路径)
- Silver Cow Party (SPFA+最短路径)
- POJ 3268:Silver Cow Party 求单点的来回最短路径
- poj 3268 Silver Cow Party(最短路)
- POJ 3268 Silver Cow Party 最短路
- POJ 3268 Silver Cow Party 最短路
- POJ 3268 Silver Cow Party 最短路
- POJ 3268 Silver Cow Party 最短路
- POJ 3268 Silver Cow Party 最短路
- poj 3268 Silver Cow Party(最短路)
- 北大ACM3268——Silver Cow Party~~最短路径
- poj 3268 Silver Cow Party 【最短路,有向图】
- java数据结构与算法-递归解决汉诺塔问题
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- Unix哲学
- TP5整合 WorkerMan 以及 GatewayWorker
- 栈应用——平衡符号
- [POJ](3268)Silver Cow Party ---最短路径(图)
- 2017网易前端笔试题总结
- spring-cloud-consumer-hystrix(六)
- Maven打包命令
- Unable to add window -- token null is not valid; is your activity running?
- java 学习笔记之AtomicInteger类的使用
- 无需XML的hibernate
- C语言读取配置文件
- bzoj 4916: 神犇和蒟蒻