随机竟然随便过,数据是不是太水了
查看原帖
随机竟然随便过,数据是不是太水了
114454
warner1129楼主2021/7/2 21:06
#include <bits/stdc++.h>

using namespace std;

const int maxn = 1005;

int val[maxn], arr[maxn];

void solve() {
    int m, n;
    cin >> m;
    for (int i = 1; i <= m; i++) cin >> arr[i];
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> val[i];
    sort(arr + 1, arr + 1 + m, greater<int>());
    sort(val + 1, val + 1 + n);
    int ans = 0, T = 7;
    mt19937 rng((unsigned long long)new char);
    while (T--) {
        int cnt = 0;
        for (int i = 1; i <= m; i++) {
            int t = arr[i];
            for (int j = 1; j <= n; j++)
                if (val[j] > 0 && t >= val[j])
                    t += (val[j] *= -1), cnt++;
        }
        ans = max(ans, cnt);
        for (int i = 1; i <= n; i++)
            if (val[i] < 0) val[i] = -val[i];
        shuffle(arr + 1, arr + 1 + m, rng);
        if (ans == n) break;
        shuffle(val + 1, val + 1 + ans + 1, rng);
    }
    cout << ans << '\n';
}

signed main() {
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    solve();
    return 0;
}

https://www.luogu.com.cn/record/52300696

2021/7/2 21:06
加载中...