1 条题解

  • 0
    @ 2025-11-3 0:09:34

    C++ :

    #include <bits/stdc++.h>
    
    using namespace std;
    
    const int N = 1e5 + 5;
    
    int n;
    
    unordered_map<int, int> f[2]; // 不平衡度 => 最大和
    
    int main() {
    
        cin >> n;
        int a, b, i;
        for (i = 1; i <= n; i++) {
            cin >> a >> b;
    
            f[i & 1] = f[i -  1 & 1];
            for (auto x: f[i - 1 & 1]) {
                f[i & 1][x.first + a - b] = max(f[i & 1][x.first + a - b], x.second + a + b);
            }
    
            f[i & 1][a - b] = max(f[i & 1][a - b], a + b);
        }
        cout << f[i - 1 & 1][0];
    
    }
    
    
    • 1

    信息

    ID
    5620
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者