您的位置:首页 > 其它

HDU 3496 Watch The Movie

2011-12-12 13:40 344 查看
http://acm.hdu.edu.cn/showproblem.php?pid=3496

二维费用的01背包问题,其中一维费用必须装满,赋初值为负无穷打,另一维不用装满,赋初值为0

我的代码

#include <stdio.h>
#include <string.h>
const int N=110,INF=0x3fffffff;
int f
[1010],c
,w
;
int main()
{
int T,m,n,l,i,j,k;
scanf("%d",&T);
while (T--)
{
scanf("%d%d%d",&n,&m,&l);
for (i=1;i<=n;i++) scanf("%d%d",&c[i],&w[i]);
memset(f,0,sizeof(f));
for (i=1;i<=m;i++)
for (j=0;j<=l;j++) f[i][j]=-INF;
for (i=1;i<=n;i++)
for (j=m;j>0;j--)
for (k=l;k>=c[i];k--)
f[j][k]>?=f[j-1][k-c[i]]+w[i];
if (f[m][l]<0) f[m][l]=0;
printf("%d\n",f[m][l]);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: