天池 在线编程 卡牌游戏(01背包)
文章目录
- 1. 题目
- 2. 解题
1. 题目
你跟你的朋友在玩一个卡牌游戏,总共有 n 张牌。
每张牌的成本为 cost[i] 并且可以对对手造成 damage[i] 的伤害。
你总共有 totalMoney 元并且需要造成至少 totalDamage 的伤害才能获胜。
每张牌只能使用一次,判断你是否可以取得胜利。
样例1
输入:
cost = [1,2,3,4,5]
damage = [1,2,3,4,5]
totalMoney = 10
totalDamage = 10输出: true
样例说明: 我们可以使用 [1,4,5] 去造成10点伤害,总花费为10。Example2
输入:
cost = [1,2]
damage = [3,4]
totalMoney = 10
totalDamage = 10输出: false
样例说明:我们最多只能造成7点伤害。
https://tianchi.aliyun.com/oj/286614371019772507/338469151696950134
2. 解题
class Solution {public:/*** @param cost: costs of all cards* @param damage: damage of all cards* @param totalMoney: total of money* @param totalDamage: the damage you need to inflict* @return: Determine if you can win the game*/bool cardGame(vector<int> &cost, vector<int> &damage, int totalMoney, int totalDamage) {// Write your code hereint n = cost.size();unordered_map<int,int> dp;dp[0] = 0;for(int i = 0; i < n; i++) {unordered_map<int,int> tmp(dp.begin(), dp.end());//复制上一次的状态,这次不拿for(auto& d : dp) { // 遍历原有状态int c = d.first;int dg = d.second;if(c + cost[i] <= totalMoney)// 可以拿{tmp[c + cost[i]] = max(tmp[c+ cost[i]], dg+damage[i]);if(tmp[c + cost[i]] >= totalDamage)return true;}}dp.swap(tmp);}return false;}
};
100ms C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
天池 在线编程 卡牌游戏(01背包)相关推荐
- 天池 在线编程 回合制游戏(前缀和)
文章目录 1. 题目 2. 解题 1. 题目 QW 是一个回合制游戏的玩家,今天他决定去打怪. QW 在一场战斗中会碰到 n 个怪物,每个怪物有攻击力 atk[i],每回合结束时如果第 i 个怪物还活 ...
- 算法题 - 卡牌游戏问题 - Python
问题描述: 卡牌游戏问题 小a和小b玩一个游戏,有 n张卡牌,每张上面有两个正整数 x, y.取一张牌时,个人积分增加 x,团队积分增加 y.求小a,小b各取若干张牌,使得他们的 个人积分相等,且 ...
- 基于QT开发的开源局域网联机UNO卡牌游戏报告(附github仓库地址)
源代码: https://github.com/yunwei37/UNO-game-oop 目录 1. 需求分析 1.1. UNO卡牌游戏的基本功能 1.2. UNO卡牌游戏的规则 2. 总体设计 3 ...
- 卡牌游戏源代码(原创)(控制台)
游戏预览: 完成度90%,约3000行,过年这几天全用在这上面了 由于尚未学到QT等,因此只能在黑窗口下面制作了 未完成的部分: ①战斗代码未优化(800行,精简后应该能降到200行左右) ②关卡掉落 ...
- 用js写卡牌游戏(一)
用js写卡牌游戏(一) 不想看废话的点这 直接看代码的点这 废话(前言) 现在游戏多了,不过总是感觉不太对自己的口味,每个游戏都感觉和自己想象中的要差了那么一点点,所以我决定尝试着自己写一个游戏. 因 ...
- SPS | 卡牌游戏Splinterlands,你也可以达到最强王者
那些最好的买卖,刚开始的时候,从数字上看,几乎都会告诉你不要买.--沃伦·巴菲特 现在的链游,概念预售为多,真正能玩的少.不少项目,游戏还没做出来,就开始炒预期,或者收一笔不少的入场费. 我今天想跟大 ...
- 用js写卡牌游戏(八)
前言 好久不见,离发布上次分享,已经过去很久很久了,这段时间发生了很多变故,经历了跳槽.离职.创业等等,手头也一直有很多事情在忙,不过鸽这么久其实是有别的理由,有一个非常重要的功能一直卡住,没有思路, ...
- 【组队学习】【34期】阿里云天池在线编程训练营
阿里云天池在线编程训练营 航路开辟者:陈信达.杨世超.赵子一.马燕鹏 领航员:武帅.初晓宇.叶前坤.邱广坤.朱松青 航海士:宁彦吉.肖桐.汪超.陈信达.杨世超.赵子一.武帅.初晓宇.叶前坤.邱广坤.朱 ...
- 【概率DP】$P2059$ 卡牌游戏
[概率DP]P2059 卡牌游戏 链接 题目描述 N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张 ...
最新文章
- Java获取文件路径
- linux如何自动调jiaob,最牛B的 Linux Shell 命令 系列连载(四)
- [精品]CSAPP Bomb Lab 解题报告(三)
- 《游戏编程模式》一7.8 并发状态机
- C语言(CED)C语言中双引号和单引号的区别
- 归并排序(merge sort)算法实现
- php验证返回值,php接口返回数据 用echo 还是return?
- 数论(Mathmatics)总结[1]
- 简单使用linux感受,linux小白说说用linux的感受
- 对比三菱, 横河PLC快速入门 第一章
- 微信小程序获取点击事件的值
- excel f2键功能_您的功能键在Microsoft Excel中做什么
- dcos 1.7 安装
- 详解CPU的主频、核心、线程、缓存、架构
- R Failed to install 'unknown package' from GitHub: schannel: failed to receive handshake, SSL/TLS
- 基于BP神经网络改进的DSS工具箱盲源分离系统
- (李嘉诚)教你投资理财
- 东方财富通快捷键一览
- Python面向对象实现栈和图书管理系统
- js遍历localStorage的键值对
热门文章
- loading gif 透明_搞笑GIF:有这样的女朋友下班哪里都不想去
- Zookeeper的简介及命令行操作
- 从static变量导出问题解析 __declspec(dllexport) 和 __declspec(dllimport)的作用
- html间数据传送,Express框架与html之间如何进行数据传递(示例代码)
- jquery post php返回html,jquery ajax post 提交数据,返回的是当前网页的html?
- cemtos7上mysql8两个实例_centos7上配置mysql8的双主互写
- 字符串、字符数组、字符串数组
- 程序员,你还在 Select * 吗?
- centos7装单机hadoop2.7.3
- c++ STL 工程实践的15条建议