您的位置:首页 > 其它

HDU 2660 Accepted Necklace

2012-01-14 17:31 162 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2660

没用搜索,DP,二维背包

我的代码

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