NOIP2014 生活大爆炸版石頭剪刀布 解題報告(水題)

NO IMAGE

線上評測:

http://codevs.cn/problem/3716/

整體思路:

就打一個判斷輸贏的陣列,然後搞個佇列模擬就行了,,,

失誤之處:

開始貌似沒有注意c 手動打陣列表的一些奇怪特性,

1
int jg[5][5] = {{1,3,2,2,3},{2,1,3,2,3},{3,2,1,3,2},{3,3,2,1,2},{2,2,3,3,1}};

這是正確的姿勢,

體會心得:

貌似沒啥,不要犯一些語言基礎的問題,

AC程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
queue <int> dl1,dl2;
int n,na,nb,a1,a2,tp;
int jg[5][5] = {{1,3,2,2,3},{2,1,3,2,3},{3,2,1,3,2},{3,3,2,1,2},{2,2,3,3,1}};
int main()
{
    scanf("%d%d%d",&n,&na,&nb);
    for (int i = 1;i <= na;i )
    {
        scanf("%d",&tp);
        dl1.push(tp);
    }
    for (int i = 1;i <= nb;i )
    {
        scanf("%d",&tp);
        dl2.push(tp);
    }
    for (int i = 1;i <= n;i )
    {
        na = dl1.front();
        dl1.pop();
        dl1.push(na);
        nb = dl2.front();
        dl2.pop();
        dl2.push(nb);
        int ans = jg[na][nb];
        if (ans == 2)
            a1 ;else
            if (ans == 3)
                a2 ;
    }
    printf("%d %d\n",a1,a2);
    return 0;
}