文章目录

  • 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. 天池 在线编程 回合制游戏(前缀和)

    文章目录 1. 题目 2. 解题 1. 题目 QW 是一个回合制游戏的玩家,今天他决定去打怪. QW 在一场战斗中会碰到 n 个怪物,每个怪物有攻击力 atk[i],每回合结束时如果第 i 个怪物还活 ...

  2. 算法题 - 卡牌游戏问题 - Python

    问题描述: 卡牌游戏问题   小a和小b玩一个游戏,有 n张卡牌,每张上面有两个正整数 x, y.取一张牌时,个人积分增加 x,团队积分增加 y.求小a,小b各取若干张牌,使得他们的 个人积分相等,且 ...

  3. 基于QT开发的开源局域网联机UNO卡牌游戏报告(附github仓库地址)

    源代码: https://github.com/yunwei37/UNO-game-oop 目录 1. 需求分析 1.1. UNO卡牌游戏的基本功能 1.2. UNO卡牌游戏的规则 2. 总体设计 3 ...

  4. 卡牌游戏源代码(原创)(控制台)

    游戏预览: 完成度90%,约3000行,过年这几天全用在这上面了 由于尚未学到QT等,因此只能在黑窗口下面制作了 未完成的部分: ①战斗代码未优化(800行,精简后应该能降到200行左右) ②关卡掉落 ...

  5. 用js写卡牌游戏(一)

    用js写卡牌游戏(一) 不想看废话的点这 直接看代码的点这 废话(前言) 现在游戏多了,不过总是感觉不太对自己的口味,每个游戏都感觉和自己想象中的要差了那么一点点,所以我决定尝试着自己写一个游戏. 因 ...

  6. SPS | 卡牌游戏Splinterlands,你也可以达到最强王者

    那些最好的买卖,刚开始的时候,从数字上看,几乎都会告诉你不要买.--沃伦·巴菲特 现在的链游,概念预售为多,真正能玩的少.不少项目,游戏还没做出来,就开始炒预期,或者收一笔不少的入场费. 我今天想跟大 ...

  7. 用js写卡牌游戏(八)

    前言 好久不见,离发布上次分享,已经过去很久很久了,这段时间发生了很多变故,经历了跳槽.离职.创业等等,手头也一直有很多事情在忙,不过鸽这么久其实是有别的理由,有一个非常重要的功能一直卡住,没有思路, ...

  8. 【组队学习】【34期】阿里云天池在线编程训练营

    阿里云天池在线编程训练营 航路开辟者:陈信达.杨世超.赵子一.马燕鹏 领航员:武帅.初晓宇.叶前坤.邱广坤.朱松青 航海士:宁彦吉.肖桐.汪超.陈信达.杨世超.赵子一.武帅.初晓宇.叶前坤.邱广坤.朱 ...

  9. 【概率DP】$P2059$ 卡牌游戏

    [概率DP]P2059 卡牌游戏 链接 题目描述 N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张 ...

最新文章

  1. Java获取文件路径
  2. linux如何自动调jiaob,最牛B的 Linux Shell 命令 系列连载(四)
  3. [精品]CSAPP Bomb Lab 解题报告(三)
  4. 《游戏编程模式》一7.8 并发状态机
  5. C语言(CED)C语言中双引号和单引号的区别
  6. 归并排序(merge sort)算法实现
  7. php验证返回值,php接口返回数据 用echo 还是return?
  8. 数论(Mathmatics)总结[1]
  9. 简单使用linux感受,linux小白说说用linux的感受
  10. 对比三菱, 横河PLC快速入门 第一章
  11. 微信小程序获取点击事件的值
  12. excel f2键功能_您的功能键在Microsoft Excel中做什么
  13. dcos 1.7 安装
  14. 详解CPU的主频、核心、线程、缓存、架构
  15. R Failed to install 'unknown package' from GitHub: schannel: failed to receive handshake, SSL/TLS
  16. 基于BP神经网络改进的DSS工具箱盲源分离系统
  17. (李嘉诚)教你投资理财
  18. 东方财富通快捷键一览
  19. Python面向对象实现栈和图书管理系统
  20. js遍历localStorage的键值对

热门文章

  1. loading gif 透明_搞笑GIF:有这样的女朋友下班哪里都不想去
  2. Zookeeper的简介及命令行操作
  3. 从static变量导出问题解析 __declspec(dllexport) 和 __declspec(dllimport)的作用
  4. html间数据传送,Express框架与html之间如何进行数据传递(示例代码)
  5. jquery post php返回html,jquery ajax post 提交数据,返回的是当前网页的html?
  6. cemtos7上mysql8两个实例_centos7上配置mysql8的双主互写
  7. 字符串、字符数组、字符串数组
  8. 程序员,你还在 Select * 吗?
  9. centos7装单机hadoop2.7.3
  10. c++ STL 工程实践的15条建议