1 条题解

  • 0
    @ 2025-8-19 19:26:16

    O(K)O(K) 枚举

    关键观察:

    加强所有属性的操作可以同时提升三种属性,但可能效率不如单独加强某一属性。

    我们需要找到一种训练策略,使得在 kk 次训练后三种属性都达到或超过BOSS的属性值。

    枚举策略:

    枚举加强所有属性操作的次数 vv0vk0 ≤ v ≤ k )。

    对于每个 vv ,计算使用 vv 次全体加强后,各属性还差多少达到BOSS属性值。

    计算剩余属性缺口需要多少次单独加强操作。

    如果总操作次数不超过 kk ,则可能达成目标。

    #include <iostream>
    using namespace std;
    #define int long long
    signed main() {
        int T;
        cin >> T;
        while (T--) {
            int X, Y, Z;
            cin >> X >> Y >> Z;
            int x, y, z, a, k;
            cin >> x >> y >> z >> a >> k;
    
            bool possible = false;
            for (int v = 0; v <= k; ++v) {
                // 计算全加v次后的剩余需求
                int rem_p = X - v * a;
                if (rem_p < 0)
                    rem_p = 0;
                int rem_ag = Y - v * a;
                if (rem_ag < 0)
                    rem_ag = 0;
                int rem_in = Z - v * a;
                if (rem_in < 0)
                    rem_in = 0;
    
                // 处理力量需求
                int s = 0;
                if (rem_p > 0) {
                    if (x == 0)
                        continue;            // 无法单独补充
                    s = (rem_p + x - 1) / x; // 向上取整
                }
    
                // 处理敏捷需求
                int t = 0;
                if (rem_ag > 0) {
                    if (y == 0)
                        continue;
                    t = (rem_ag + y - 1) / y;
                }
    
                // 处理智力需求
                int u = 0;
                if (rem_in > 0) {
                    if (z == 0)
                        continue;
                    u = (rem_in + z - 1) / z;
                }
    
                // 总训练次数是否足够
                if (s + t + u <= k - v) {
                    possible = true;
                    break;
                }
            }
    
            cout << (possible ? "YES" : "NO") << endl;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    535
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    9
    已通过
    2
    上传者