1 条题解

  • 0
    @ 2026-5-5 13:02:00

    题意简述

    给定三个正整数 a,b,ca, b, c,可以进行最多 55 次操作,每次操作选择其中一个数加 11。求最终 a×b×ca \times b \times c 的最大可能值。

    思路

    由于操作次数非常少(最多 55 次),且每个数的初始值不超过 1010,可以暴力枚举所有可能的操作分配。

    用三重循环枚举给 aa 增加 ii 次、给 bb 增加 jj 次、给 cc 增加 kk 次,其中 i+j+k5i + j + k \le 5i,j,k0i, j, k \ge 0

    对每一种分配,计算乘积 (a+i)×(b+j)×(c+k)(a+i) \times (b+j) \times (c+k),取最大值即可。

    时间复杂度 O(63)O(6^3) 每组,完全足够。

    参考代码

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
    
        int t;
        cin >> t;
        while (t--) {
            int a, b, c;
            cin >> a >> b >> c;
    
            int ans = 0;
            for (int i = 0; i <= 5; ++i) {
                for (int j = 0; j <= 5 - i; ++j) {
                    for (int k = 0; k <= 5 - i - j; ++k) {
                        int cur = (a + i) * (b + j) * (c + k);
                        ans = max(ans, cur);
                    }
                }
            }
            cout << ans << "\n";
        }
        return 0;
    }
    
    • 1

    信息

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