只对了subtask1的第一个...错在哪里了啊求大佬帮忙
  • 板块P1464 Function
  • 楼主443eb9
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/1 12:40
  • 上次更新2024/10/1 15:56:41
查看原帖
只对了subtask1的第一个...错在哪里了啊求大佬帮忙
1203083
443eb9楼主2024/10/1 12:40
#include <bits/stdc++.h>
#define ll long long
using namespace std;

int main() {
    std::ios::sync_with_stdio(false);

    ll rec[21][21][21]{};

    function<ll(ll, ll, ll)> w = [&](ll x, ll y, ll z) {
        if (x <= 0 || y <= 0 || z <= 0) return (ll)1;
        if (x > 20 || y > 20 || z > 20) return w(20, 20, 20);
        if (rec[x][y][z] != 0) return rec[x][y][z];

        ll res = 0;
        if (x < y && y < z)
            res = w(x, y, z - 1) + w(x, y - 1, z - 1) - w(x, y - 1, z);
        else
            res = w(x - 1, y, z) + w(x - 1, y - 1, z) + w(x - 1, y, z - 1) - w(x - 1, y - 1, z - 1);
        rec[x][y][z] = res;
        return res;
    };

    ll a, b, c;
    while (true) {
        scanf("%lld%lld%lld", &a, &b, &c);
        if (a == -1 && b == -1 && c == -1) break;
        printf("w(%lld, %lld, %lld) = %lld", a, b, c, w(a, b, c));
    }

    return 0;
}

2024/10/1 12:40
加载中...