POJ 2895

  1 #include <iostream>
  2 #include <string>
  3 #define MAXN 27
  4 using namespace std;
  5 
  6 short map[MAXN];
  7 short cul[MAXN];
  8 
  9 int main()
 10 {
 11     //freopen("acm.acm","r",stdin);
 12     int test;
 13     int time;
 14     int wait;
 15     string s;
 16     map[0] = 1;
 17     map[1] = 1;
 18     map[2] = 1;
 19 
 20     map[3] = 2;
 21     map[4] = 2;
 22     map[5] = 2;
 23 
 24     map[6] = 3;
 25     map[7] = 3;
 26     map[8] = 3;
 27 
 28     map[9] = 4;
 29     map[10] = 4;
 30     map[11] = 4;
 31 
 32     map[12] = 5;
 33     map[13] = 5;
 34     map[14] = 5;
 35 
 36     map[15] = 6;
 37     map[16] = 6;
 38     map[17] = 6;
 39     map[18] = 6;
 40 
 41     map[19] = 7;
 42     map[20] = 7;
 43     map[21] = 7;
 44 
 45     map[22] = 8;
 46     map[23] = 8;
 47     map[24] = 8;
 48     map[25] = 8;
 49 
 50 //    cul[0] = 1;
 51     cul[1] = 1;
 52     cul[2] = 2;
 53     cul[3] = 3;
 54 
 55     cul[4] = 1;
 56     cul[5] = 2;
 57     cul[6] = 3;
 58 
 59     cul[7] = 1;
 60     cul[8] = 2;
 61     cul[9] = 3;
 62 
 63     cul[10] = 1;
 64     cul[11] = 2;
 65     cul[12] = 3;
 66 
 67     cul[13] = 1;
 68     cul[14] = 2;
 69     cul[15] = 3;
 70 
 71     cul[16] = 1;
 72     cul[17] = 2;
 73     cul[18] = 3;
 74     cul[19] = 4;
 75 
 76     cul[20] = 1;
 77     cul[21] = 2;
 78     cul[22] = 3;
 79 
 80     cul[23] = 1;
 81     cul[24] = 2;
 82     cul[25] = 3;
 83     cul[26] = 4;
 84     cin>>test;
 85     while(test --)
 86     {
 87         cin>>time>>wait;
 88         getchar();
 89         getline(cin,s);
 90     //    cout<<s<<endl;
 91         int sum = 0;
 92         int i;
 93         for(i = 0; i < s.length(); ++ i)
 94         {
 95             if(s[i] == ' ')
 96             {
 97                 sum += time;
 98             }
 99             else if(i != 0 && map[s[i-1] - 'A'] != ' ' && map[s[i]-'A'] == map[s[i-1]-'A'])
100             {
101                 sum += wait;
102                 sum += cul[s[i]-'A'+1]*time;
103             }
104             else
105             {
106                 sum += cul[s[i]-'A'+1]*time;
107             }
108         }
109         cout<<sum<<endl;
110     }
111 }
原文地址:https://www.cnblogs.com/gavinsp/p/4568703.html