zoukankan      html  css  js  c++  java
  • hdu(2159)(二维背包)

    该题为二维背包
    即比一维多加了一个限制条件,同理可以推至多维即是有多个限制条件
    #include <stdio.h>
    #include <string.h>
    struct node
    {
        int r,e;
    }s[150];
    int max(int a,int b)
    {
        if (a>b)
        return a;
        else
        return b;
    }
    int main()
    {
        int n,m,k,a,i,l,j,f[100][100];
        while(scanf("%d%d%d%d",&n,&m,&k,&a)!=EOF)
        {
            for (i=1;i<=k;++i)
            {
                scanf("%d%d",&s[i].e,&s[i].r);
            }
            memset(f,0,sizeof(f));
            for (i=1;i<=k;++i)
            for (l=s[i].r;l<=m;++l)//该循环与下一个循环可以交换
            for (j=1;j<=a;++j)
            {
                f[l][j]=max(f[l-s[i].r][j-1]+s[i].e,f[l][j]);
                //f[l][j]表示消耗l忍耐度杀死j只时所获得的价值
                //由动态规划可知其等于max(该只未杀时所消耗的忍耐度+杀死该只得到的价值,当前状态)
                //可能会觉得用一定的忍耐度不一定能杀死那么多的怪兽,但是在该种情况下,对应的f为0,不会有影响
            }
            if (f[m][a]<n)
            printf ("-1\n");
            else
            {
                for (i=0;i<=m;++i)
                if (f[i][a]>=n)
                {
                    printf ("%d\n",m-i);
                    break;
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    docker 存储扩容和存放路径修改
    gitlab+jenkins+webhook 代码发布
    jenkins 流水线(pipline)
    kafka单机部署
    nload命令
    jumpserver部署维护
    mysql sleep连接过多的问题解决
    监控zabbix-server本身
    DevOps方案探究
    ceph 存储
  • 原文地址:https://www.cnblogs.com/1994two/p/3063371.html
Copyright © 2011-2022 走看看