还是采药问题

还是采药问题_第1张图片

  • 这是一道很经典的题目,动态规划基础题,我们可以将一种药看作一种状态,然后对每格进行 max取值,下面是代码:
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int f[105][1005];
int limit,n,t,value;
int main()
{
    scanf("%d%d",&limit,&n);
    for(int i=0;iscanf("%d%d",&t,&value);
        for(int j=0;j<=limit;j++){
            if(j+t<=limit) f[i+1][j+t]=max(f[i+1][j+t],f[i][j]+value);
            f[i+1][j]=max(f[i+1][j],f[i][j]);
        }
    }
    printf("%d",f[n][limit]);
    return 0;
}

你可能感兴趣的:(动态规划)