题目链接

Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了,
和绝地求生一样,游戏人物本身可以携带一定重量m的物品,装备背包
之后可以多携带h(h为0代表没有装备背包)重量的东西。玩了几天
taotao发现了一个BUG,当装备背包之后,如果可携带重量没有满,就
可以拿一个任意重的东西。(解释看样例)有一天taotao空降到了一个
奇怪的岛上,岛上有n件装备,每个装备都有重量Wi和威力值Vi,但taotao
不认识这些装备,所以他来求助你,挑选威力最大的装备,帮助他吃鸡。
输入描述:
本题有多组输入(小于10),当n=0时结束输入。
第一行输入n,m,h。n,m,h为整数,并且0<=n,m,h<=100,
接下来n行,每行输入第i个物品的物品的重量Wi和威力值Vi。0<=Wi,Vi<=100.
输出描述:
输出最大威力值,每组输出一行。

//此题是在01背包的基础上进行了改动
代码如下

import java.util.*;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNextInt()) {int n = sc.nextInt();if (n == 0) {break;}int[] weight = new int[n];int[] power = new int[n];int m = sc.nextInt();int h = sc.nextInt();for (int i = 0; i < n; i++) {weight[i] = sc.nextInt();power[i] = sc.nextInt();}System.out.println(getmax(m, h, weight, power));}}public static int getmax(int m, int h, int[] weight, int[] power) {int len = weight.length;//如果没装备背包,bug就无法使用,故要分类考虑if (h == 0) {int[] dp = new int[m + 1];//因为没装背包,就是传统的01背包套模板即可for (int i = 0; i < len; i++) {for (int k = m; k >= weight[i]; k--) {dp[k] = Math.max(dp[k], dp[k - weight[i]] + power[i]);}}return dp[m];} else {装了背包int max = 0;for (int i = 0; i < len; i++) {//第一个for 枚举使用bug放进去的物品int[] dp = new int[m + h];for (int j = 0; j < len; j++) {//01背包if (i == j) {//因为每个物品只能用一次,故通过bug放进去的物品不考虑continue;}//因为要利用bug 背包不能全部沾满,为了使收益最大,留1的空间出来for (int k = m + h - 1; k >= weight[j]; k--) {dp[k] = Math.max(dp[k], dp[k - weight[j]] + power[j]);}}max = Math.max(max, dp[m + h - 1] + power[i]);}return max;}}
}

牛客-taotao要吃鸡相关推荐

  1. 牛客 TaoTao要吃鸡(01背包)

    牛客 TaoTao要吃鸡(01背包): 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 问题描述: Ta ...

  2. 刷题记录:牛客NC15445wyh的吃鸡

    传送门:牛客 题目描述: 最近吃鸡游戏非常火,你们wyh学长也在玩这款游戏,这款游戏有一个非常重要的过程,就是要跑到安全 区内,否则就会中毒持续消耗血量,我们这个问题简化如下 假设地图为n*n的一个图 ...

  3. 牛客每日练习----圆圈​​​​​​​,TaoTao要吃鸡,吐泡泡

    我喜欢给自己压力,必须得定一个很高的目标,逼自己朝着这个目标前进,不管会不会实现,都是一个动力.                                      ----喻言 链接:http ...

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

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

  5. TaoTao要吃鸡(01背包)

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

  6. 牛客14392 猴子吃香蕉

    链接:https://ac.nowcoder.com/acm/problem/14392 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 65536K,其他语言13107 ...

  7. 算法竞赛入门经典 每日一题(TaoTao要吃鸡)

    题目描述 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地求生一样,游戏人物本身可以携带一定重量m的物品,装备背包 之后可以多携带h(h为0代表没有装备背包)重量 ...

  8. 【题集】牛客网·2018年全国多校算法寒假训练营练习比赛(第二场)

    原文链接:2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Form ...

  9. 2018.1.28 牛客网2018年全国多校算法寒假训练营练习比赛题解

    Pre:DP专场,不得不说出题人脑洞真的大,题目质量真心不错.能将当今比较热门的游戏素材与算法竞赛有机结合,也是肥肠因缺斯汀的呀哈哈哈哈~ 打的最有意思也是最扎心的一场比赛,还是自己菜.DP是需要下慢 ...

最新文章

  1. 模拟计算机 电磁,校园机房电磁模拟环境及计算机模拟.ppt
  2. Andoird自定义ViewGroup实现竖向引导界面
  3. Linux 常用名利总结
  4. SSH关于公钥认证Permission denied的问题
  5. Python基础_字符串的格式化
  6. 传B站35岁女副总裁嫁给24岁男主播!女方资产80亿,任职45家企业
  7. 【万字总结】基于多智能体强化学习的《星际争霸II》中大师级水平的技术研究
  8. dbf转成excel_excel怎么转为dbf? Excel与DBF互相转换的教程
  9. 使用CSF对kitti的点云数据过滤出地面点云,结合PCL使用,C++实现
  10. linux 安装SopCast实现在线直播(2)
  11. tmux分屏工具使用
  12. 怎么查看网站服务器开了哪些端口,怎么查看服务器开了哪个端口
  13. JavaScript介绍及其特点
  14. 猎头猎取人才会注重人才的哪些点?
  15. 学习编程是否真的有用?
  16. 多款国外虚拟主机简单比较
  17. HPUX 11iV3 LVM新变化
  18. Android JNI之pthread_create的失败(1)
  19. docker指定网桥和网段
  20. MySQL数据库基础知识,基础操作详细整理

热门文章

  1. 使用Cheat Enginee(CE)找出“雷数”、“笑脸”和“计时器”
  2. 汇编语言实现人体感应灯
  3. 染成茜色的坂道破解技术内幕之内功提高篇,成为真正的程序员
  4. 连载03:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)
  5. java 超类调用子类,Java:从超类变量调用子类方法
  6. /usr/bin/ld: /tmp/ccMz0hFd.o: undefined reference to symbol ‘pthread_condatt
  7. 【5G NR】UE注册流程
  8. 跨平台应用开发进阶(四十三)一文走近网络层抓包工具:WhireShark
  9. SEED-DVS6446 FAQs归纳整理
  10. 在vue项目中webpack打包后字体不生效