FOJ 1523 A Version of Nim

来源:互联网 发布:知乎邮箱注册 编辑:程序博客网 时间:2024/05/21 17:57
#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>using namespace std;// 题目链接:http://acm.fzu.edu.cn/problem.php?pid=1523/*    博弈DP*/int dp[10][10][10][10];int n, p1, p2, p3, p4;int main() {    scanf("%d", &n);    while(n--) {        scanf("%d %d %d %d", &p1, &p2, &p3, &p4);        dp[0][0][0][0] = 1;        for(int i = 0; i <= p1; ++i) {            for(int j = 0; j <= p2; ++j) {                for(int k = 0; k <= p3; ++k) {                    for(int l = 0; l <= p4; ++l) {                        if(i+j+k+l == 0) continue;                        dp[i][j][k][l] = 0;                        for(int c = 1; c <= 3 && i - c >= 0; ++c) {                            dp[i][j][k][l] |= (dp[i-c][j][k][l]^1);                        }                        for(int c = 1; c <= 3 && j - c >= 0; ++c) {                            dp[i][j][k][l] |= (dp[i][j-c][k][l]^1);                        }                        for(int c = 1; c <= 3 && k - c >= 0; ++c) {                            dp[i][j][k][l] |= (dp[i][j][k-c][l]^1);                        }                        for(int c = 1; c <= 3 && l - c >= 0; ++c) {                            dp[i][j][k][l] |= (dp[i][j][k][l-c]^1);                        }                    }                }            }        }        if(dp[p1][p2][p3][p4]) {            printf("1\n");        } else {            printf("0\n");        }    }    return 0;}

0 0