题解 | #智乃的捉迷藏#

智乃的捉迷藏

https://ac.nowcoder.com/acm/contest/95335/F

背包dp的解法


#include <bits/stdc++.h>

using namespace std;
const int MAXN = 21;
bool dp[MAXN][MAXN][MAXN][MAXN];

int main(int argc, char *argv[])
{
    dp[0][0][0][0] = true;
    for (int i = 1; i <= 20; ++i)
    {
        for (int j = 0; j <= i; ++j)
        {
            for (int k = 0; k <= i; ++k)
            {
                for (int l = 0; l <= i; ++l)
                {
                    if (j && dp[i - 1][j - 1][k][l])dp[i][j][k][l] = true;
                    if (k && dp[i - 1][j][k - 1][l])dp[i][j][k][l] = true;
                    if (l && dp[i - 1][j][k][l - 1])dp[i][j][k][l] = true;
                    if (j && k && dp[i - 1][j - 1][k - 1][l])dp[i][j][k][l] = true;
                    if (k && l && dp[i - 1][j][k - 1][l - 1])dp[i][j][k][l] = true;
                    if (l && j && dp[i - 1][j - 1][k][l - 1])dp[i][j][k][l] = true;
                }
            }
        }
    }
    int T;
    scanf("%d", &T);
    while (T--)
    {
        int a, b, c, n;
        scanf("%d %d %d %d", &n, &a, &b, &c);
        printf(dp[n][a][b][c] ? "Yes\n" : "No\n");
    }
    return 0;
}
全部评论

相关推荐

03-27 17:35
门头沟学院 C++
点赞 评论 收藏
分享
牛客464620405号:随便投,随便找,中国经过40多年的改革开放,人才缺口和职位空缺是巨大的,中国现在属于遍地黄金的年代,属于90后和00大机遇的时代
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务