wa了最后一个点
查看原帖
wa了最后一个点
527629
iqer楼主2022/5/4 14:55
#include<bits/stdc++.h>
using namespace std;

typedef long long intt;
const int N = 2e5 + 1;
intt n, m, ks[101], c[101];

intt dp[N];


int main(){
    cin >> n >> m;
    for(int i = 1; i <= n; ++i)cin >> ks[i];
    for(int i = 1; i <= n; ++i)cin >> c[i];
    for(int i = 0; i < N; ++i)dp[i] = 1;
    for(int i = 1; i <= n; ++i){
        for(int j = N - 1; j >= c[i]; --j){
            for(int k = 1; k <= ks[i] && k * c[i] <= j; ++k){
                dp[j] = max(dp[j], dp[j - k * c[i]] * k);
            }
        }
    }
    for(int i = 1; i < N; ++i){
        if(dp[i] >= m)return cout << i << '\n', 0;
    }
}
2022/5/4 14:55
加载中...