题意 : 题目链接

分析 : 

如果没有 BUG (即 h == 0 的时候)就是一个普通的 0 / 1 背包

需要讨论一下 h != 0 的情况

此时有就相当于有物品是有特权的

而且背包装有特权的物品根据题目的要求是应当最后装的

也就是说特权物品装完之后背包将不再可装

所以特权物品肯定是只有一个的

数据量并不大,所以可以去枚举这个特权物品

那么如何知道在  没有装特权物品  之前的最佳选择方案?

答案就是用最小的可剩空间留给特权物品,然后其他空间去跑 0/1 背包

最小的可剩空间当然就是 h + m - 1,只留一个单位空间给特权物品即可

最后除了枚举的物品,其他的物品去跑背包容量为 h + m - 1 的 0/1 背包

#include<bits/stdc++.h>
using namespace std;
;
];
int C, n, m, h;

int main(void)
{
    while(~scanf("%d", &n) && n){
        scanf("%d %d", &m, &h), C = m + h;

        ; i<=n; i++)
            scanf("%d %d", &w[i], &v[i]);

        ;

        memset(dp, , sizeof(dp));
        ; i<=n; i++)
            for(int j=C; j>=w[i]; j--)
                dp[j] = max(dp[j], dp[j-w[i]] + v[i]);
        ans = dp[C];

        ){///有 BUG 存在
            ; k<=n; k++){///枚举特权物品
                memset(dp, , sizeof(dp));///记得初始化
                ; i<=n; i++){
                    if(i == k) continue;///特权物品不在 0/1 背包过程中
                    ; j>=w[i]; j--){
                        dp[j] = max(dp[j], dp[j-w[i]] + v[i]);
                    }
                }
                ans = max(ans, dp[C-] + v[k]);///最后维护最优值
            }
        }

        printf("%d\n", ans);
    }
    ;
}

牛客网 TaoTao要吃鸡 ( 0/1背包变形 )的更多相关文章

  1. 2018年全国多校算法寒假训练营练习比赛(第二场) B TaoTao要吃鸡 01背包变形题

    链接:https://www.nowcoder.com/acm/contest/74/B来源:牛客网 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地求生一样,游 ...

  2. 2018年全国多校算法寒假训练营练习比赛(第二场)B - TaoTao要吃鸡

    链接:https://www.nowcoder.com/acm/contest/74/B来源:牛客网 题目描述 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地求 ...

  3. C++版 - HDUoj 2010 3阶的水仙花数 - 牛客网

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C++版 - ...

  4. 牛客网Java刷题知识点之垃圾回收算法过程、哪些内存需要回收、被标记需要清除对象的自我救赎、对象将根据存活的时间被分为:年轻代、年老代(Old Generation)、永久代、垃圾回收器的分类

    不多说,直接上干货! 首先,大家要搞清楚,java里的内存是怎么分配的.详细见 牛客网Java刷题知识点之内存的划分(寄存器.本地方法区.方法区.栈内存和堆内存) 哪些内存需要回收 其实,一般是对堆内 ...

  5. 算法题16 贪吃的小Q 牛客网 腾讯笔试题

    算法题16 贪吃的小Q 牛客网 腾讯笔试题 题目: 链接:https://www.nowcoder.com/questionTerminal/d732267e73ce4918b61d9e3d0ddd9 ...

  6. 牛客网 --java问答题

    http://www.nowcoder.com/ 主要是自己什么都不怎么会.在这里可以学习很多的! 第一天看题自己回答,第二天看牛客网的答案! 1 什么是Java虚拟机?为什么Java被称作是“平台无 ...

  7. 牛客网《BAT面试算法精品课》学习笔记

    目录 牛客网<BAT面试算法精品课>学习笔记 牛客网<BAT面试算法精品课>笔记一:排序 牛客网<BAT面试算法精品课>笔记二:字符串 牛客网<BAT面试算法 ...

  8. 牛客网第9场多校E(思维求期望)

    链接:https://www.nowcoder.com/acm/contest/147/E 来源:牛客网 题目描述 Niuniu likes to play OSU! We simplify the ...

  9. 牛客网暑期ACM多校训练营(第七场)Bit Compression

    链接:https://www.nowcoder.com/acm/contest/145/C 来源:牛客网 题目描述 A binary string s of length N = 2n is give ...

随机推荐

  1. value(C# )

    上下文关键字 value 用在普通属性声明的 set 访问器中. 此关键字类似于方法的输入参数. 关键字 value 引用客户端代码尝试分配给属性的值. 在以下示例中,MyDerivedClass 有 ...

  2. java 依据文件名判断mime类型

    依据文件名称判断mime类型 import java.util.HashMap; import java.util.Map; /** * 依据文件名获取MimeType */ public class ...

  3. urllib:处理网络异常

    from urllib import request, error import ssl import urllib.request import socket import urllib.error ...

  4. (5.2)mysql高可用系列——测试环境部署

    关键词环境部署: ############## 测试环境机器架构 #########[1]策划[1.1]linux服务器A组 8台 192.168.1.200~192.168.1.207,主机名db, ...

  5. python 链接mysql 连接池

    # python 链接mysqlimport mysql.connector.poolingconfig = { "host":"localhost", &qu ...

  6. Python进阶编程 类的成员

    类的成员 class A: company_name='老男孩' #静态变量 __iphone='1515151' #私有静态变量 def __init__(self,name,age): #特殊方法 ...

  7. MySql 面试开发技术点汇总

    表结构设计 1.为什么一定要设一个主键?  答:因为你不设主键的情况下,innodb也会帮你生成一个隐藏列,作为自增主键.所以啦,反正都要生成一个主键,那你还不如自己指定一个主键,在有些情况下,就能显 ...

  8. Bashed -- hack the box

    Introduction Target: 10.10.10.68 (OS: Linux) Kali linux: 10.10.16.44 Information Enumeration Firstly ...

  9. Spring Boot 学习杂记

    使用IntelliJ IDEA构建Spring Initializr

  10. LCA统计

    读入挂 inline void read(int &v) { v = ; ; ; ') { if (c == '-') { p = -; } c = getchar(); } ') { v = ...