UVa 11340

  题目大意:报社根据文章中不同字符的价值付费给作者,给出字符的价值,计算一篇文章应付多少钱给作者。

  先统计文章中每个字符出现的次数,再计算价值。直接寻址表(Direct Addressing Table, DAT)的应用。

 1 #include <cstdio>
 2 #include <cstring>
 3 #define MAXN 256+4
 4 #define LINEN 10000+10
 5 
 6 int cnt[MAXN], value[MAXN];
 7 
 8 int main()
 9 {
10 #ifdef LOCAL
11     freopen("in", "r", stdin);
12 #endif
13     int T;
14     scanf("%d", &T);
15     while (T--)
16     {
17         int k;
18         scanf("%d", &k);
19         getchar();
20         memset(value, 0, sizeof(value));
21         while (k--)
22         {
23             char ch;
24             int v;
25             scanf("%c%d", &ch, &v);
26             getchar();
27             value[ch] = v;
28         }
29         int m;
30         scanf("%d", &m);
31         getchar();
32         char str[LINEN];
33         memset(cnt, 0, sizeof(cnt));
34         while (m--)
35         {
36             gets(str);
37             int len = strlen(str);
38             for (int i = 0; i < len; i++)
39                 cnt[str[i]]++;
40         }
41         int money = 0;
42         for (int i = 0; i <= 255; i++)
43             money += cnt[i]*value[i];
44         int dollar = money / 100;
45         int cent = money % 100;
46         printf("%d.%02d$
", dollar, cent);
47     }
48     return 0;
49 }
View Code
原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3289541.html