WA 求调,在地方性网站可过
查看原帖
WA 求调,在地方性网站可过
1420422
Lyzc0dr楼主2025/6/28 08:14
#include <bits/stdc++.h>  
#define endl "\n"  
#define ll long long  
#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);  
using namespace std;  
int n, m, f[25][805], a[201], b[201];  
struct Node {  
    int i, j, k;  
} pre[201][21][810];  
void print(int i, int j, int k) {  
    if (i == 0) return;  
    Node pre1 = pre[i][j][k];  
    print(pre1.i, pre1.j, pre1.k);  
    if (pre1.j == j - 1) cout << i << " ";  
}  
int main() {  
    IOS  
    int cnt = 1;  
    while (cin >> n >> m) {  
        if (n == 0 && m == 0) break;  
        memset(f, 0xcf, sizeof f);  
        f[0][400] = 0;  
        for (int i = 1; i <= n; i++) {  
            int x, y;  
            cin >> x >> y;  
            a[i] = x; 
            b[i] = y; 
            for (int j = m; j >= 1; j--) {  
                for (int k = 800; k >= 0; k--) {  
                    pre[i][j][k] = {i - 1, j, k};  
                    int k1 = k - x + y;  
                    if (k1 < 0 || k1 > 800) continue;  

                    if (f[j][k] < f[j - 1][k - x + y] + x + y) {  
                        f[j][k] = f[j - 1][k - x + y] + x + y;  
                        pre[i][j][k] = {i - 1, j - 1, k1};  
                    }  
                }  
            }  
        }  
        int res1 = 0, res2 = 0;  
        for (int i = 0; i <= 400; i++) {  
            if (f[m][400 + i] >= 0 && f[m][400 + i] > f[m][400 - i]) {  
                res1 = i;  
                res2 = f[m][400 + i];  
                break;  
            }  
            if (f[m][400 - i] >= 0) {  
                res1 = -i;  
                res2 = f[m][400 - i];  
                break;  
            }  
        }  
        cout << "Jury #" << cnt++ << endl;  
        cout << "Best jury has value " << (res2 + res1) / 2 << " for prosecution and value " << (res2 - res1) / 2 << " for defence:" << endl;  
        print(n, m, 400 + res1);  
        cout <<"\n\n";  
    }  
    return 0;  
}  
2025/6/28 08:14
加载中...