1 条题解

  • 2
    @ 2025-11-16 23:26:32
    #include <bits/stdc++.h>
    using namespace std;
    #define rep(i, l, r) for (int i = l; i <= r; i++)
    #define per(i, l, r) for (int i = l; i >= r; i--)
    #define ull unsigned long long
    #define pii pair<int, int>
    #define int long long
    #define ld long double
    #define pb push_back
    #define se second
    #define fi first
    #define endl '\n'
    #define debug cout << "-----------------------------" << endl;
    double pi = acos(-1);
    const int mod1 = 1e9 + 7, mod2 = 998244353, inf = 0x3f3f3f3f;
    const int N = 2e5 + 5;
    int n, a[N], b[N];
    bool check(int x)
    {
        int sum = 0;
        for (int i = 1; i <= n; i++)
            if (a[i] > x)
            {
                sum += b[i];
            }
        return sum <= x;
    }
    void solve()
    {
        cin >> n;
        rep(i, 1, n) cin >> a[i];
        int sum = 0;
        rep(i, 1, n) cin >> b[i], sum += b[i];
        int l = 0, r = sum;
        int ans = 0;
        while (l <= r)
        {
            int mid = (l + r) >> 1;
            if (check(mid)) ans = mid, r = mid - 1;
            else l = mid + 1;
        }
        cout << ans << endl;
    }
    signed main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0), cout.tie(0);
        int T = 1;
        cin >> T;
        while (T--)
            solve();
        //    cout << fixed << setprecision(12) << ans << endl;
        return 0;
    }
    
    • @ 2025-11-16 23:27:23

      答案具有单调性,直接二分答案。

  • 1

信息

ID
1199
时间
1000ms
内存
256MiB
难度
7
标签
(无)
递交数
36
已通过
10
上传者