程设模拟考 A:石头剪刀布

题目见此:http://cxsjsx.openjudge.cn/2013weekend5a/A/

解题思路

  1. 用一个二维win数组表示双方出拳后的结果,1为A赢,-1为B赢,最后加到结果上

贴代码:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int win[3][3] = {0, 1, -1, -1, 0, 1, 1, -1, 0};
 5 int pa[101], pb[101];
 6 int main()
 7 {
 8     int k, n, na, nb;
 9     cin >> k;
10     while(k--)
11     {
12         cin >> n >> na >> nb;
13         for(int i=0 ; i<na ; i++)
14         {
15             cin >> pa[i];
16             pa[i] >>= 1;
17         }
18         for(int i=0 ; i<nb ; i++)
19         {
20             cin >> pb[i];
21             pb[i] >>= 1;
22         }
23         int res = 0;
24         for(int i=0, j=0 ; n ; i=(i+1)%na, j=(j+1)%nb, n--)
25             res += win[pa[i]][pb[j]];
26         if(res > 0)    cout << "A" << endl;
27         else if(res < 0)    cout << "B" << endl;
28         else cout << "draw" << endl;
29     }
30 }
View Code

主要要加快写这种题的速度

posted on 2013-06-16 15:29  白~  阅读(153)  评论(0编辑  收藏  举报

导航