[luoguP1328] 生活大爆炸版石头剪刀布(模拟)

传送门

 

虽然是模拟,但是我们可以用矩阵保存结果,来是其更加简便。

 

——代码

 1 #include <cstdio>
 2 #include <iostream>
 3 
 4 int map[5][5] = {{0, 0, 1, 1, 0},
 5                {1, 0, 0, 1, 0},
 6                {0, 1, 0, 0, 1},
 7                {0, 0, 1, 0, 1},
 8                {1, 1, 0, 0, 0}}; 
 9 int n, x, y, ans1, ans2;
10 int a[210], b[210];
11 
12 inline int read()
13 {
14     int x = 0, f = 1;
15     char ch = getchar();
16     for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = -1;
17     for(; isdigit(ch); ch = getchar()) x = (x << 1) + (x << 3) + ch - '0';
18     return x * f;
19 }
20 
21 int main()
22 {
23     int i, j;
24     n = read();
25     x = read();
26     y = read();
27     for(i = 0; i < x; i++) a[i] = read();
28     for(i = 0; i < y; i++) b[i] = read();
29     i = 0;
30     j = 0;
31     while(n--)
32     {
33         ans1 += map[a[i]][b[j]];
34         ans2 += map[b[j]][a[i]];
35         i = (++i) % x;
36         j = (++j) % y;
37     }
38     printf("%d %d\n", ans1, ans2);
39     return 0;
40 }
View Code

 

posted @ 2017-05-22 10:02  zht467  阅读(117)  评论(0编辑  收藏  举报