题目:http://acm.hdu.edu.cn/showproblem.php?pid=1248
思路:完全背包模板
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=10010;
int dp[maxn];
int main()
{
int a[3],t;
a[0]=150;a[1]=200;a[2]=350;
scanf("%d",&t);
while(t--)
{
int m;
scanf("%d",&m);
memset(dp,0,sizeof(dp));
for(int i=0;i<3;i++)
{
for(int j=a[i];j<=m;j++)
dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
}
printf("%d\n",m-dp[m]);
}
}

本文介绍了解决 HDU 1248 题目的一种方法,通过使用完全背包算法来求解最优解。代码中详细展示了如何初始化数组、读取输入,并逐步迭代计算出每个可能容量的最大价值。
5万+

被折叠的 条评论
为什么被折叠?



