每件仅一次,容量上界12880,防止正序转成完全背包。
#include <bits/stdc++.h> using namespace std; int main(){int n,m;cin>>n>>m;vector<long long>d(m+1);while(n--){int w,c;cin>>w>>c;for(int v=m;v>=w;v--)d[v]=max(d[v],d[v-w]+c);}cout<<d[m]<<'\n';}
注册一个 GeekPi OJ 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 GeekPi OJ 通用账户