二维背包---P1855 榨取kkksc03

P1855 榨取kkksc03

题解

二维背包板子题

f[ i ][ j ] 前 n 个物品,花费金钱不超过 i ,花费时间不超过 j 的最大价值

二维背包---P1855 榨取kkksc03

如果每个物品只能选一次,那么就相当于在01背包上多加一维

代码

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<string>
#include<cstring>
#include<queue> using namespace std; typedef long long ll; inline int read()
{
int ans=;
char last=' ',ch=getchar();
while(ch<''||ch>'') last=ch,ch=getchar();
while(ch>=''&&ch<='') ans=ans*+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
} int n,m,t;
int w[],v[];
int f[][];
int ans=; int main()
{
n=read();m=read();t=read();
for(int i=;i<=n;i++) w[i]=read(),v[i]=read();
for(int k=;k<=n;k++)
for(int i=m;i>=w[k];i--)
for(int j=t;j>=v[k];j--)
f[i][j]=max(f[i][j],f[i-w[k]][j-v[k]]+),
ans=max(ans,f[i][j]);
printf("%d\n",ans);
return ;
}
上一篇:hdoj 2111 Saving HDU


下一篇:js打印页面指定区域,并去掉页眉上的时间和请求路径