解题报告 『占卜DIY(模拟)』

Posted kirisame-marisa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解题报告 『占卜DIY(模拟)』相关的知识,希望对你有一定的参考价值。

原题地址

水题,纯模拟。

 

代码实现如下:

技术图片
#include <bits/stdc++.h>
using namespace std;
#define rep(i, a, b) for (register int i = a; i <= b; i++)
#define per(i, a, b) for (register int i = a; i >= b; i--)

const int maxn = 15;

int ans = 0;
int num[maxn], mat[maxn], poker[maxn][maxn];

int judge(char ch) {
    if (ch >= 0 && ch <= 9) return 0;
    if (ch == A || ch == J || ch == Q || ch == K) return 0;
    return 1;
}

int get_char(char ch) {
    if (ch == A) return 1;
    if (ch == 0) return 10;
    if (ch == J) return 11;
    if (ch == Q) return 12;
    if (ch == K) return 13;
    return ch - 0;
}

void write(int x) {
    if (x < 0) {
        putchar(-);
        x = -x;
    }
    if (x > 9) write(x / 10);
    putchar(x % 10 + 0);
}

int main() {
    rep(i, 1, 13)
        per(j, 4, 1) {
            char ch = getchar();
            if (judge(ch)) ch = getchar();
            poker[i][j] = get_char(ch);
        }
    num[13] = 4;
    while (num[13]) {
        int now = poker[13][num[13]];
        num[13]--;
        while (now != 13) {
            mat[now]++;
            num[now]++;
            now = poker[now][num[now]];
        }
    }
    rep(i, 1, 12) ans += (mat[i] == 4);
    write(ans);
    return 0;
}
View Code

以上是关于解题报告 『占卜DIY(模拟)』的主要内容,如果未能解决你的问题,请参考以下文章

CH0802 占卜DIY

占卜DIY

TYVJ1424-占卜DIY

占卜DIY

20161027模拟赛解题报告

NOIP模拟2017.6.11解题报告