Information
- ID
- 1065
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 10
- Tags
- # Submissions
- 5
- Accepted
- 3
- Uploaded By
#include<bits/stdc++.h>
using namespace std;
const int N=110,M=10100;
int w[N][N];
int f[M]; //f[k]表示在金币不超过k的时候的最大利润
int main()
{
int t,n,m;
cin>>t>>n>>m;
for(int i=1;i<=t;i++)
for(int j=1;j<=n;j++)
cin>>w[i][j];
int res=0;
for(int i=1;i<t;i++) //枚举第i天到第i+1天的利润
{
memset(f,0,sizeof f); //清空
for(int j=1;j<=n;j++) //枚举每个物品
for(int k=w[i][j];k<=m;k++) //完全背包体积从小到大
f[k]=max(f[k],f[k-w[i][j]]+w[i+1][j]-w[i][j]); //更新价值
m+=f[m];//更新金币数目
}
cout<<m;
return 0;
}