ACM试题,要用动态规划解决,C或C++的程序

2024-11-27 01:57:55
推荐回答(1个)
回答1:

是一个背包,可以去学习一下

#include
#include
const int MAX=1005;
int dp[MAX];
int v,p;
int main()
{
int n,m,i;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(dp,0,sizeof(dp));
while(m--)
{
scanf("%d%d",&v,&p);
for(i=n;i>=v;i--)
if(dp[i-v]+p>dp[i])
dp[i]=dp[i-v]+p;
}
printf("%d\n",dp[n]);
}
return 0;
}