• HDOJ_2602 0/1背包问题


    背包问题里面最基础的0 1背包问题,就是讲放或者不放的问题。其基本思想是,先放一个权值,然后用剩余的空间来放其他的,更新这时全部的能量状态,然后放两个,这时是 根据第一次的各权值状态来更新本次能量状态....依次类推

    #include<stdio.h>
    #include<string.h>
    int max(int a,int b)
    {
        return a>=b?a:b;
    }
    int main()
    {
        int T,n,m,i,j,f[1010],a[1010],v[1010];
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d%d",&n,&m);
            for(i=1;i<=n;++i)
                scanf("%d",&a[i]);
            for(i=1;i<=n;++i)
                scanf("%d",&v[i]);
            memset(f,0,sizeof(f));
            for(i=1;i<=n;++i)///从1到n 来一个一个更新
                for(j=m;j>=v[i];j--)  //一般是从后向前推,其意义是,从总数里面一点点的减,直到当前值。
                    f[j]=max(f[j],f[j-v[i]]+a[i]);/////记者里面是减去用掉的空间,后面加上 对应权值
            printf("%d\n",f[m]);
        }
        return 0;
    }
  • 相关阅读:
    使用Netcat实现通信和反弹Shell
    PentesterLab----xss
    nmap实验
    xssgame20关
    使内网服务器访问外网
    lcx端口转发
    提权
    Nmap使用及常见的参数选项
    kali渗透metasploitable靶机
    我待Django如初恋(✪ω✪)的第一天💗
  • 原文地址:https://www.cnblogs.com/zibuyu/p/2650376.html
Copyright © 2020-2023  润新知