Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
142465 毛泓博(做题专用,大号Fess) 分组背包 C++ 通过 100 1 MS 648 KB 367 2024-04-08 13:14:03

Tests(15/15):


#include<bits/stdc++.h> using namespace std; int m,n,t,x,g[101][1001],b[101],c[1001],w[1001],dp[1001]; int main() { cin>>m>>n; for(int i=1;i<=n;i++) cin>>c[i]>>w[i]>>x,t=max(t,x),g[x][++b[x]]=i; for(int i=1;i<=t;i++) for(int j=m;j>=0;j--) for(int k=1;k<=b[i];k++) if(j>=c[g[i][k]]) dp[j]=max(dp[j],dp[j-c[g[i][k]]]+w[g[i][k]]); cout<<dp[m]; }


测评信息: