标签:des style blog http io color ar os sp
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 5547 | Accepted: 3458 |
Description
Input
Output
Sample Input
5 50 30 5 100 20 50 10 x x 10
Sample Output
35
非常简单的单源最短路,用了spfa写了下。
处理一下数据读入即可。。
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <vector> #include <queue> #include <map> #include <string> using namespace std; typedef long long LL; const int N = 110; const int inf = 1e7+7; int n , cost[N][N] , dis[N] ; bool inq[N]; int eh[N] , et[N*N] , nxt[N*N] , ew[N*N] , tot ; void init() { memset( eh , -1 , sizeof eh ) ; tot = 0 ; } void addedge( int u , int v , int w ) { et[tot] = v , ew[tot] = w , nxt[tot] = eh[u] , eh[u] = tot ++ ; et[tot] = u , ew[tot] = w , nxt[tot] = eh[v] , eh[v] = tot ++ ; } int read() { char s[60]; int res = 0 ; scanf("%s",s); if( s[0] == ‘x‘ ) return inf; for( int i = 0 ; s[i] ; ++i ) res = res * 10 + (s[i]-‘0‘); return res ; } void test_cost() { for( int i = 1 ; i <= n ; ++i ) { for( int j = 1 ; j <= n ; ++j ) if( cost[i][j] < inf )cout << cost[i][j] << ‘ ‘; else cout <<"inf "; cout << endl; } } void spfa( int s ) { queue<int>que; memset( inq , false ,sizeof inq ); for( int i = 0 ; i <= n ; ++i ) dis[i] = inf ; inq[s] = true , dis[s] = 0 , que.push(s); while( !que.empty() ) { int u = que.front() ; que.pop(); inq[u] = false ; // cout << u << endl ; for( int i = eh[u] ; ~i ; i = nxt[i] ) { int v = et[i] , w = ew[i] ; if( dis[u] + w < dis[v] ){ dis[v] = dis[u] + w ; if( !inq[v] ) { inq[v] = true , que.push(v); } } } } } void run() { init(); for( int i = 2 ; i <= n ; ++i ) { for( int j = 1 ; j < i ; ++j ) { cost[i][j] = cost[j][i] = read(); } cost[i][i] = 0 ; } for( int i = 1 ; i < n ; ++i ){ for( int j = i + 1 ; j <= n ; ++j ) { if( cost[i][j] >= inf ) continue ; addedge( i, j , cost[i][j] ); } } // test_cost(); spfa(1); int ans = 0 ; for( int i = 1 ; i <= n ; ++i ) ans = max( ans , dis[i] ); printf("%d\n",ans); } int main() { #ifdef LOCAL freopen("in.txt","r",stdin); #endif // LOCAL ios::sync_with_stdio(false); while( ~scanf("%d",&n) ) run(); }
标签:des style blog http io color ar os sp
原文地址:http://www.cnblogs.com/hlmark/p/4098964.html