蒟蒻WA了三个点求助
查看原帖
蒟蒻WA了三个点求助
178834
我要学编程楼主2020/7/20 11:47
#include<bits/stdc++.h>

using namespace std;

const int N = 100020;

int f[N];
int n,m;

struct node{
    int v,w;
};

vector<node> vec;
int main(){
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        int v,w,s;
        cin >> w >> v >> s;
        for (int k = 1; k <= s ; k *= 2){
            s -= k;
            vec.push_back({v * k, w * k});
        }
        if (s >= 0)
            vec.push_back({v * s, w * s});
    }
    for (int i = 1; i <= vec.size(); i ++)
        for (int j = m; j >= vec[i].v; j -- )
            f[j] = max(f[j], f[j - vec[i].v] + vec[i].w);
    cout << f[m];
    return 0;
}

2020/7/20 11:47
加载中...