#include<stdio.h>
struct apple{
int m;
int v;
}app[1010];
int money(int i,int v);
int main(){
int n,v;
int x,y,z;
while((scanf("%d%d",&n,&v))&&(n||v)){
for(x=0;x<n;x++){
scanf("%d %d",&app[x].v,&app[x].m);
}
printf("%d\n",money(n-1,v));
}
return 0;
}
int money(int i,int v){
if((i<0)||(v<0))return 0;
int a=money(i-1,v);
int b=money(i-1,v-app[i].v)+app[i].m;
return (a>b)?a:b;
}
本文介绍如何使用C++编程语言解决动态规划问题,通过具体实例解释动态规划的概念、思路及实现步骤。
439

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



