蒟蒻40分求助awa
查看原帖
蒟蒻40分求助awa
747717
miss_A楼主2023/9/17 21:12

按照题解的思路写的,交上去40分,照着题解改了下但还是40......求大佬给看看

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;
int s, n, m;//对手人数、城堡数、士兵数
int a[101][101];//a[i][j]表示对于第i座城堡,出兵数量第j小的人出的士兵数量
int dp[10001];//已出兵数量
int ans;

int maxx(int x, int y){
    return x > y ? x : y;
}

int main(){

    cin >> s >> n >> m;
    for(int i = 1; i <= s; ++i){
        for(int j = 1; j <= n; ++j){
            cin >> a[j][i];
        }
    }
    for(int i = 1; i <= n; ++i){
        sort(a[i]+1, a[i]+1+s);
    }

    for(int i = 1; i <= n; ++i){
        for(int j = m; j >= 0; --j){
            for(int k = 1; k <= s; ++k){
                if(j > a[i][k] * 2){
                    dp[j] = maxx(dp[j - a[i][k] * 2 - 1] + k * i, dp[j]);
                }
            }
        }
    }

    for(int i = 0; i <= m; ++i){
        ans = maxx(ans, dp[i]);
    }

    cout << ans << endl;

    return 0;
}
2023/9/17 21:12
加载中...