| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么wa?#include<iostream>
#include<memory>
using namespace std;
const int int_max=INT_MAX/2;
bool found[1002];
int dist[2][1002];
int cost[2][1002][1002];
void shortestpath(int x,int n,int g)
{
int i,j,min;
for(i=1;i<=n;i++)
{
found[i]=false;
dist[g][i]=int_max;
}
dist[g][x]=0;
while(x!=-1)
{
found[x]=true;
for(i=1;i<=n;i++)
{
if((!found[i])&&cost[g][x][i])
if(dist[g][i]>dist[g][x]+cost[g][x][i])
dist[g][i]=dist[g][x]+cost[g][x][i];
}
min=int_max;
x=-1;
for(j=1;j<=n;j++)
if((!found[j])&&dist[g][j]<min)
{
min=dist[g][j];
x=j;
}
}
}
int main()
{
int n,m,x;
while(scanf("%d%d%d",&n,&m,&x)!=EOF)
{
int i,x,y,d,min=0;
memset(cost,0,sizeof(cost));
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&d);
cost[0][x][y]=d;
cost[1][y][x]=d;
}
shortestpath(x,n,0);
shortestpath(x,n,1);
for(i=1;i<=n;i++)
{
if(dist[0][i]+dist[1][i]>min)
min=dist[0][i]+dist[1][i];
}
printf("%d\n",min);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator