hdu 2602

来源:互联网 发布:ipad淘宝网不能横屏 编辑:程序博客网 时间:2024/05/17 02:14
#include<stdio.h>
#include<string.h>
int max(int i,int j)
{
    return i>j?i:j;
}
int a[1006][1006];
int a1[1006],a2[1006];
int main()
{
    int n,m;
    int k,p;
    int i,j,x,y,z;
    scanf("%d",&n);
    while(n--)
    {
        memset(a,0,sizeof(a));
        scanf("%d%d",&k,&p);
        for(i=1;i<=k;i++)
            scanf("%d",&a1[i]);
        for(i=1;i<=k;i++)
            scanf("%d",&a2[i]);
        for(i=1;i<=k;i++)
        {
            for(j=1;j<=p;j++)
            {
                if(j<a2[i])
                    a[i][j]=a[i-1][j];
                else
                    a[i][j]=max(a[i-1][j],a[i-1][j-a2[i]]+a1[i]);
            }    
        }
        printf("%d\n",a[k][p]);
    }
    return 0;

}

状态转移方程a[i][j]=max(a[i-1][j],a[i-1][j-a2[i]]+a1[i]);

0 0
原创粉丝点击