请求加强数据
查看原帖
请求加强数据
530437
jesse1216楼主2024/6/18 18:00

rt,O(n3)O(n^3) 过了。

理论上只能通过 Subtask 11。

#include <bits/stdc++.h>
using namespace std;
int n, m, c, r, a[1005][1005];
int p[1005], q[1005];
inline int solveFirst() {
    int ans = 0, minn = 1e9;
    for (int i = 1; i <= n; i++) {
        if (p[i] == 0) continue;
        int res = 1e9;
        for (int j = 1; j <= n; j++)
            if (q[j] != 0)
                res = min(res, a[i][j]);
        if (res < minn) {
            minn = res;
            ans = i;
        }
    }
    return ans;
}
bool flag[1005];
inline int solveSecond() {
    memset(flag, 0, sizeof flag);
    for (int i = 1; i <= n; i++) {
        if (p[i] == 0) continue;
        int minn = 1e9, res = 0;
        for (int j = 1; j <= n; j++)
            if (q[j] != 0 && minn > a[i][j])
                minn = a[i][j],
                res = j;
        flag[res] = 1;
    }
    for (int i = 1; i <= n; i++)
        if (q[i] != 0 && flag[i] == 0)
            return i;
}
int main() {
    ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
    cin >> n >> m >> c;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
            cin >> a[i][j];
    for (int i = 1; i <= n; i++)
        cin >> p[i];
    for (int i = 1; i <= n; i++)
        cin >> q[i];
    for (int i = 1; i <= n; i++) {
        if (c == 0) {
            while (p[i] > 1) {
                cout << i << endl;
                p[i]--;
                cin >> r;
                q[r]--;
            }
        }
        else {
            while (q[i] > 1) {
                cin >> r;
                p[r]--;
                cout << i << endl;
                q[i]--;
            }
        }
    }
    for (int i = 1; i < n; i++) {
        if (c == 0) {
            r = solveFirst();
            p[r]--;
            cout << r << endl;
            cin >> r;
            q[r]--;
        }
        else {
            cin >> r;
            p[r]--;
            r = solveSecond();
            q[r]--;
            cout << r << endl;
        }
    }
    return 0;
}
2024/6/18 18:00
加载中...