题解
2024-10-19 20:57:17
发布于:湖南
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int t,n,m;//t天,n件,m个
int a[105][105],dp[105],g[10005];
int main(){
cin>>t>>n>>m;
for(int i=1;i<=t;i++) for(int j=1;j<=n;j++) cin>>a[i][j];
dp[1]=m;
for(int i=2;i<=t;i++){
memset(g,0,sizeof(g));
for(int j=1;j<=dp[i-1];j++){
g[j]=max(g[j],j);
for(int k=1;k<=n;k++) if(j-a[i-1][k]>=0) g[j]=max(g[j],g[j-a[i-1][k]]+a[i][k]);
}
dp[i]=max(dp[i-1],g[dp[i-1]]);
}
cout<<dp[t];
return 0;
}
这里空空如也
有帮助,赞一个