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 |
...Why MyCode got WA ......./ Please save me.I think this problem solve by Dijkstra Algorithm. and I don't think this algorithm get TL or WA , in N<=1000,T<=2000 but.,,.,., I got WA... It's very strange .. :( please help me . My Code : /***CodeStart***/ #include <stdio.h> int t, n ; int a[ 1010 ][ 1010 ] ; int v[ 1010 ] ; int d[ 1010 ] ; void input(); void process(); void output(); int main() { input(); process(); output(); return 0 ; } void input() { scanf("%d %d",&t,&n); int i , j ; for ( i = 1 ; i <= n ; i ++ ) for ( j = 1 ; j <= n; j ++ ) { if ( i == j ) a[i][j] = 0 ; else a[i][j] = 2100000000 ; } int t1, t2 , t3 ; for ( i = 0 ; i < t ; i ++ ) { scanf("%d %d %d",&t1,&t2,&t3 ) ; a[t1][t2] = t3 ; a[t2][t1] = t3 ; } } void process() { int i , j ; int min , mini ; for ( i = 1 ; i <= n ; i ++ ) { d[i] = 2100000000 ; v[i] = 0 ; } d[1]=0; for ( i = 1 ; i <= n ; i ++ ) { min = 2100000000; for ( j = 1 ; j <= n ; j ++ ) { if ( v[j] == 0 && min > d[j] ) { min = d[j] ; mini = j ; } } v[mini] = 1 ; for ( j = 1 ; j <= n ; j ++ ) if ( d[j] > d[mini] + a[mini][j] ) d[j] = d[mini] + a[mini][j] ; } } void output() { printf("%d\n",d[n]); } /*** Code End ***/ Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator