P1005 采药

来源:互联网 发布:小马哥激活软件 编辑:程序博客网 时间:2024/06/05 18:17

这是一道典型的01背包问题,直接上代码:

#include<cstdio>
#define max(a,b) a>b?a:b
int t[101]={0},value[101]={0};
int f[1001]={0};
int main()
{
    int T,M,i,j;
    scanf("%d%d",&T,&M);
    for(i=1;i<=M;i++)
        scanf("%d%d",&t[i],&value[i]);
    for(i=1;i<=M;i++)
        for(j=T;j>=t[i];j--)
            f[j]=max(f[j],f[j-t[i]]+value[i]);
    printf("%d",f[T]);
    return 0;
}

0 0