牛客-taotao要吃鸡
题目链接
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要吃鸡相关推荐
- 牛客 TaoTao要吃鸡(01背包)
牛客 TaoTao要吃鸡(01背包): 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 问题描述: Ta ...
- 刷题记录:牛客NC15445wyh的吃鸡
传送门:牛客 题目描述: 最近吃鸡游戏非常火,你们wyh学长也在玩这款游戏,这款游戏有一个非常重要的过程,就是要跑到安全 区内,否则就会中毒持续消耗血量,我们这个问题简化如下 假设地图为n*n的一个图 ...
- 牛客每日练习----圆圈,TaoTao要吃鸡,吐泡泡
我喜欢给自己压力,必须得定一个很高的目标,逼自己朝着这个目标前进,不管会不会实现,都是一个动力. ----喻言 链接:http ...
- 2018年全国多校算法寒假训练营练习比赛(第二场)B - TaoTao要吃鸡
链接:https://www.nowcoder.com/acm/contest/74/B 来源:牛客网 题目描述 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地 ...
- TaoTao要吃鸡(01背包)
链接:https://www.nowcoder.com/acm/contest/74/B 来源:牛客网 题目描述 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地 ...
- 牛客14392 猴子吃香蕉
链接:https://ac.nowcoder.com/acm/problem/14392 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 65536K,其他语言13107 ...
- 算法竞赛入门经典 每日一题(TaoTao要吃鸡)
题目描述 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地求生一样,游戏人物本身可以携带一定重量m的物品,装备背包 之后可以多携带h(h为0代表没有装备背包)重量 ...
- 【题集】牛客网·2018年全国多校算法寒假训练营练习比赛(第二场)
原文链接:2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Form ...
- 2018.1.28 牛客网2018年全国多校算法寒假训练营练习比赛题解
Pre:DP专场,不得不说出题人脑洞真的大,题目质量真心不错.能将当今比较热门的游戏素材与算法竞赛有机结合,也是肥肠因缺斯汀的呀哈哈哈哈~ 打的最有意思也是最扎心的一场比赛,还是自己菜.DP是需要下慢 ...
最新文章
- 模拟计算机 电磁,校园机房电磁模拟环境及计算机模拟.ppt
- Andoird自定义ViewGroup实现竖向引导界面
- Linux 常用名利总结
- SSH关于公钥认证Permission denied的问题
- Python基础_字符串的格式化
- 传B站35岁女副总裁嫁给24岁男主播!女方资产80亿,任职45家企业
- 【万字总结】基于多智能体强化学习的《星际争霸II》中大师级水平的技术研究
- dbf转成excel_excel怎么转为dbf? Excel与DBF互相转换的教程
- 使用CSF对kitti的点云数据过滤出地面点云,结合PCL使用,C++实现
- linux 安装SopCast实现在线直播(2)
- tmux分屏工具使用
- 怎么查看网站服务器开了哪些端口,怎么查看服务器开了哪个端口
- JavaScript介绍及其特点
- 猎头猎取人才会注重人才的哪些点?
- 学习编程是否真的有用?
- 多款国外虚拟主机简单比较
- HPUX 11iV3 LVM新变化
- Android JNI之pthread_create的失败(1)
- docker指定网桥和网段
- MySQL数据库基础知识,基础操作详细整理
热门文章
- 使用Cheat Enginee(CE)找出“雷数”、“笑脸”和“计时器”
- 汇编语言实现人体感应灯
- 染成茜色的坂道破解技术内幕之内功提高篇,成为真正的程序员
- 连载03:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)
- java 超类调用子类,Java:从超类变量调用子类方法
- /usr/bin/ld: /tmp/ccMz0hFd.o: undefined reference to symbol ‘pthread_condatt
- 【5G NR】UE注册流程
- 跨平台应用开发进阶(四十三)一文走近网络层抓包工具:WhireShark
- SEED-DVS6446 FAQs归纳整理
- 在vue项目中webpack打包后字体不生效