Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
441738 黄浙峰老师 【C6-11】环游世界之背包问题 C++ 通过 100 135 MS 320 KB 698 2026-05-23 14:43:44

Tests(10/10):


#include <iostream> #include <algorithm> using namespace std; int a[10005]; int main() { int n,m; cin>>n>>m; while (n--){ int v, w, p; cin >>v>>w>>p; if (p==0){ for (int i =v;i<=m;i++) { a[i]=max(a[i],a[i-v]+w); } } else { int num=p; for (int k=1;num>0;k<<= 1) { int u=min(k, num); int nv=v*u; int nw=w*u; for (int i=m;i>=nv;i--) { a[i]=max(a[i],a[i-nv]+nw); } num-=u; } } } cout<<a[m]<< endl; return 0; }


测评信息: