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 |
为什么加上这句程序会崩呢???不然就a了#include<iostream> using namespace std; #define MAX 1001 #define INF 2000000 int map[MAX][MAX]; int visit[MAX]; int n,m,x; void di(int s,int dis[]) { int i,j; memset(visit,0,sizeof(visit)); for(i=1;i<=n;i++) { if(i!=s) dis[i]=map[s][i]; } dis[s]=0; //visit[s]=1; for(i=1;i<=n;i++) { int min=INF; int ff; for(j=1;j<=n;j++) { if(!visit[j] && dis[j]<min) { min=dis[j]; ff=j; } } visit[ff]=1; for(j=1;j<=n;j++) { if(!visit[j] && dis[ff]+map[ff][j]<dis[j]) dis[j]=dis[ff]+map[ff][j]; } } } void tra() { int i,j; for(i=1;i<=n;i++) for(j=1;j<i;j++) { int t; t=map[i][j]; map[i][j]=map[j][i]; map[j][i]=t; } } int main() { int i,j; int dis1[MAX]; int dis2[MAX]; cin>>n>>m>>x; for(i=1;i<=n;i++) for(j=1;j<=n;j++) map[i][j]=INF; int s,d,c; for(i=1;i<=m;i++) { cin>>s>>d>>c; map[s][d]=c; } di(x,dis1); tra(); di(x,dis2); int max=0; for(i=1;i<=n;i++) { if(dis1[i]+dis2[i]<INF && dis1[i]+dis2[i]>max ) max=dis1[i]+dis2[i]; } cout<<max<<endl; return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator