POJ 3268 Silver Cow Party
来源:互联网 发布:光子嫩肤永久有效知乎 编辑:程序博客网 时间:2024/06/05 04:51
题意:
描述一只母牛从N块田中的任一块(1≤N≤1000)去参加盛大的母牛聚会,这个聚会被安排在X号田(1≤X ≤N)。一共有M(1 ≤ M ≤ 100,000)条单行道分别连接着两块田,且通过路i需要花Ti(1≤Ti≤100)的时间。每头母牛必需参加宴会并且在宴会结束时回到自己的领地,但是每头牛都很懒而喜欢选择化是最少的一个方案。来时的路和去时的可能不一样。求每头牛要来回的最短时间。输入第一行:三个用空格分开的整数:N,M和X第2到第M+1行:第i+1描述路i,通过三个用空格分开的整数: Ai, Bi和Ti. 是对于从Ai号田到 Bi号田的描述,需要Ti的时间.输出第一行:一个整数:对于每头牛所必须花费的时间.(在这段时间内,每头牛可以来回)
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define N 1005const int inf=1<<29;int vis[N],w1[N][N],d1[N],w2[N][N],d2[N];int n,m,x;void dij1(int s){ int i,j; memset(vis,0,sizeof(vis)); for(i=1;i<=n;i++) { d1[i]=w1[s][i]; } d1[s]=0; vis[s]=1; for(i=1;i<=n;i++) { int now=inf,k; for(j=1;j<=n;j++) { if(!vis[j]&&d1[j]<now) { now=d1[j]; k=j; } } if(now==inf) { break; } vis[k]=1; for(j=1;j<=n;j++) { if(!vis[j]&&d1[j]>d1[k]+w1[k][j]) { d1[j]=d1[k]+w1[k][j]; } } }}void dij2(int s){ int i,j; memset(vis,0,sizeof(vis)); for(i=1;i<=n;i++) { d2[i]=w2[s][i]; } d2[s]=0; vis[s]=1; for(i=1;i<=n;i++) { int now=inf,k; for(j=1;j<=n;j++) { if(!vis[j]&&d2[j]<now) { now=d2[j]; k=j; } } if(now==inf) { break; } vis[k]=1; for(j=1;j<=n;j++) { if(!vis[j]&&d2[j]>d2[k]+w2[k][j]) { d2[j]=d2[k]+w2[k][j]; } } }}int main(){ while(scanf("%d%d%d",&n,&m,&x)!=EOF) { int i,j; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(i==j) { w1[i][j]=0; w2[i][j]=0; } else { w1[i][j]=inf; w2[i][j]=inf; } } } int u,v,c; while(m--) { scanf("%d%d%d",&u,&v,&c); if(c<w1[u][v]) { w1[u][v]=c; } if(c<w2[v][u]) { w2[v][u]=c; } } dij1(x); dij2(x); int MIN=-1; for(i=1;i<=n;i++) { if(x!=i) { MIN=max(MIN,d1[i]+d2[i]); } } printf("%d\n",MIN); } return 0;}
0 0
- 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
- 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
- poj 3268 Silver Cow Party
- poj 3268 Silver Cow Party
- GYM 100685 J【交互题】
- 短语out of the blue
- OutputStreamWriter,InputStreamReader,PrintWriter,BufferedReader
- Nouveau源码分析(七): 各SUBDEV/ENGINE初始化 (1)
- 9.在项目中利用block替换代理方法,实现通知
- POJ 3268 Silver Cow Party
- TCP FIN_WAIT_2状态问题分析
- 第8章 编程模式与设计模式
- Android问题集(一)——从fragment跳转到另一个Activity
- 你在过度测试你的软件吗?
- solr query
- Nouveau源码分析(零)
- web.xml中的url-pattern映射规则
- JSP - Directives