标签:des style blog http color os java io ar
2 1 2 3 4 1 3 5 7 4 2 1 2 3 4 1 4 4 1 1 2 3 4 1 3 5 7 4 1 1 2 3 10 1 4
Case 1: The minimum cost between station 1 and station 4 is 3. The minimum cost between station 4 and station 1 is 3. Case 2: Station 1 and station 4 are not attainable.
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <climits> 7 #include <vector> 8 #include <queue> 9 #include <cstdlib> 10 #include <string> 11 #include <set> 12 #include <stack> 13 #define LL long long 14 #define pii pair<int,int> 15 #define INF 0x3f3f3f3f3f3fLL 16 using namespace std; 17 LL L[4],C[4],n,m; 18 LL x[110],mp[110][110]; 19 LL calc(int i,int j){ 20 LL tmp = x[i] - x[j]; 21 if(tmp < 0) tmp = -tmp; 22 if(tmp > 0 && tmp <= L[0]) return C[0]; 23 if(tmp > L[0] && tmp <= L[1]) return C[1]; 24 if(tmp > L[1] && tmp <= L[2]) return C[2]; 25 if(tmp > L[2] && tmp <= L[3]) return C[3]; 26 return INF; 27 } 28 int main() { 29 int t,i,j,k,u,v,cs = 1; 30 scanf("%d",&t); 31 while(t--){ 32 for(i = 0; i < 4; i++) scanf("%I64d",L+i); 33 for(i = 0; i < 4; i++) scanf("%I64d",C+i); 34 scanf("%I64d %I64d",&n,&m); 35 for(i = 1; i <= n; i++) scanf("%I64d",x+i); 36 for(i = 1; i <= n; i++){ 37 mp[i][i] = INF; 38 for(j = i+1; j <= n; j++){ 39 mp[i][j] = mp[j][i] = calc(i,j); 40 } 41 } 42 for(k = 1; k <= n; k++){ 43 for(i = 1; i <= n; i++){ 44 for(j = 1; j <= n; j++){ 45 if(mp[i][j] > mp[i][k]+mp[k][j]) 46 mp[i][j] = mp[i][k] + mp[k][j]; 47 } 48 } 49 } 50 printf("Case %d:\n",cs++); 51 while(m--){ 52 scanf("%d %d",&u,&v); 53 if(mp[u][v] >= INF){ 54 printf("Station %d and station %d are not attainable.\n",u,v); 55 }else{ 56 printf("The minimum cost between station %d and station %d is %I64d.\n",u,v,mp[u][v]); 57 } 58 } 59 } 60 return 0; 61 }
标签:des style blog http color os java io ar
原文地址:http://www.cnblogs.com/crackpotisback/p/3945397.html