1 solutions

  • 0
    @ 2024-12-2 21:37:21

    我们可以枚举 XXYY,然后计算 ZZ 是否在[0,k][0, k] 范围内,不过这样的时间复杂度是 O(n2)O(n^2)

    我们枚举 XX,然后 YY 的范围就是 [0,KX][0, K - X]

    0<=Y<=KX0 <= Y <= K - X, 此时哪些 YY 可以让 ZZ[0,K][0, K] 的范围内呢?

    0<=KXY<=K0 <= K - X - Y <= K , 同时 0<=Y<=K0 <= Y <= K

    所以我们枚举 XX, 这样使得 ZZ 也合法的 YY 的所在区间是 [max(0,KX),min(K,SX)][max(0, K - X), min(K, S - X)], 每次枚举 KK 计算一下这个区间元素即可

    #include <bits/stdc++.h>
    #define int long long
    using namespace std;
    int k, s, num = 0;
    signed main() {
        cin >> k >> s;
        for (int x = 0; x <= k; x++) {
            int a = max(0LL, s - x - k);
            int b = min(k, s - x);
    
            if (a <= b)
                num += (b - a + 1);
        }
        cout << num;
        return 0;
    }
    
    • 1

    Information

    ID
    614
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    9
    Tags
    (None)
    # Submissions
    95
    Accepted
    5
    Uploaded By