这题读起来比较长,需要仔细理解题意。

本题的条件是;给出了对手的所有出牌和己方的所有手牌,问采用最优策略,是否可以胜利?

有几个注意点:

1 天气状态可以叠加, 即又下雨又起雾同时起霜 天气状态牌从出牌后就开始起作用了,一直会持续到牌局结束,所以不管普通牌是先于天气牌出还是后于天气牌出,只要天气牌一出,普通牌都会被影响若对应的天气状态已经有了, 再出同样状态的天气牌并没有什么新作用;

2 若普通牌战力为0, 则此张牌没有意义,因为题目说法是,天气牌会让对应普通牌战力降低为1;这里若普通牌战力就为0,那也没法降低了,直接忽略掉这种牌(这里好像题目改了,一开始说的是战力取值为自然数,现在改成正整数了)

3 此题没有攻击与被攻击哦,不要因为看到近战,攻城这些字眼迷糊住了。只是需要计算各自手牌中的总战力谁高谁低即可。

       解题思路如下:总战力值可以在输入的时候就先累加计算,对于普通牌,要记录对方普通牌和己方普通牌因为天气原因战力降低为1 而损失掉的战力; 对于已经出手的天气牌,天气状态已经生效且不可取消,所以,最优策略就是对于己方的所有天气手牌,若此种天气状态暂未生效,比较己方和对方谁会因为此种天气状态导致对应普通牌战力降低 的更多,己方降低的少则选择出手此天气牌, 反之不出手。最后比较总战力值。

#include <iostream>using namespace std;int main()
{// 对方牌输入参数int a[4];  int normal[4] = {0};           // 记录对方普通牌 因为天气影响战力变为1时 需要减少的生命值bool weather_state[4] = {0};   // 当前天气状态(雨雾霜可以叠加)int nlife_1 = 0;               // 对方战力值int c, d, weather;             // 输入用临时变量for (int i = 0; i < 4; i ++ ) scanf("%d", &a[i]);for (int i = 0; i < 3; i ++ )  // 输入对方所有打出的单位牌, 3个类别{for (int j = 0; j < a[i]; j ++ ){scanf("%d%d", &c, &d);nlife_1 += d;         // 英雄牌不受天气影响直接累加生命值,普通牌则先累加生命值if (!c && d) normal[i + 1] += d - 1; // 记录普通牌因天气影响战力变为1减少的生命值}}for (int i = 0; i < a[3]; i ++ )  // 输入对方打出的天气牌{scanf("%d", &weather);weather_state[weather] = true;}// 我方输入参数int x1, x2;int nlife_2 = 0;int x, y, z;int my_normal[4] = {0};  // 记录我方普通牌 因为天气影响战力变为1时 需要减少的生命值scanf("%d%d", &x1, &x2);for (int i = 0; i < x1; i ++ ){scanf("%d%d%d", &x, &y, &z);nlife_2 += z;if (!y && z) my_normal[x] += z - 1 ;}for (int i = 0; i < x2; i ++ )   // 策略:对于己方的天气牌,若此天气牌的效果让对面生命值减少的比己方多, 则可以出;否则不出(前提是此天气状态暂时没有被对手置为真){scanf("%d", &weather);if (!weather_state[weather]){if (normal[weather] > my_normal[weather]) weather_state[weather] = true;}}for (int i = 1; i <= 3; i ++ )  // 因天气原因,大家的生命值要一起减{if (weather_state[i]){nlife_1 -= normal[i];nlife_2 -= my_normal[i];}}if (nlife_2 > nlife_1) printf("Y");else printf("N");return 0;
}

来局昆特牌吗?(模拟+策略优化)相关推荐

  1. ACM_题目这么难,来局愉快的昆特牌吧

    题目这么难,来局愉快的昆特牌吧 Time Limit: 2000/1000ms (Java/Others) Problem Description: 小Z打比赛,然而比赛太难了,他坐在电脑面前被题淹没 ...

  2. jozj5945. 【NOIP2018模拟11.02】昆特牌

    5945. [NOIP2018模拟11.02]昆特牌 Description 作为一个资深OIer,你被邀请到位于波兰的CDPR总部参观.但没想到你刚一到就遇到了麻烦.昆特牌的数据库发生了故障.原本昆 ...

  3. 【纪中模拟2018.11.02】【JZOJ5945】昆特牌

    题目链接:https://jzoj.net/senior/#main/show/5945 Limits TL: 1e3ms ML:512Mb Description 原本昆特牌中有$k$种卡牌和$n$ ...

  4. JZOJ5945. 【NOIP2018模拟11.02】昆特牌(gwent)

    Description 作为一个资深OIer,你被邀请到位于波兰的CDPR总部参观.但没想到你刚一到就遇到了麻烦.昆特牌的数据库发生了故障.原本昆特牌中有 k种卡牌和n 种阵营,为了平衡,每个阵营拥有 ...

  5. JZOJ-senior-5945. 【NOIP2018模拟11.02】昆特牌(gwent)

    Time Limits: 1000 ms Memory Limits: 524288 KB Detailed Limits Description 作为一个资深OIer,你被邀请到位于波兰的CDPR总 ...

  6. tablewidget 行数自适应_控制|基于自适应遗传算法的增程式电动汽车能量管理策略优化...

    点击上方蓝字关注我们! 摘要:建立增程式电动汽车整车仿真模型,以恒温器控制策略为例,以车辆最长续驶里程和百公里油耗为优化目标,利用自适应遗传算法对其能量管理策略进行了优化。优化结果表明,采用自适应遗传 ...

  7. Promodel®模拟和优化套装加速企业绩效改善 功能介绍

    采用Promodel®模拟和优化套装加速企业绩效改善,消除风险! Promodel®仿真模拟和优化套装是业内先进的离散事件系统仿真软件,由ProModel公司于1996年开发.它可以构造多种生产.物流 ...

  8. ICLR 2022 | 绝艺学会打麻将,腾讯AI Lab提出全新策略优化算法ACH

    感谢阅读腾讯AI Lab微信号第144篇文章.本文介绍「绝艺」在二人麻将游戏环境取得的进展,相关算法及benchmark已开源,论文被机器学习国际顶会 ICLR 2022 接收. 「绝艺」是腾讯AI ...

  9. 巫师之昆特牌手游服务器中断连接,巫师之昆特牌10月11日网络维护 掉线处理办法...

    巫师之昆特牌10月11日网络维护 掉线处理办法 今早昆特牌网络很不稳定,6:00-9:00很多玩家掉线了,这是因为突然的网络维护,目前情况已好转,但如果你依旧掉线,请参照下面日志! 亲爱的玩家: 为了 ...

最新文章

  1. scrapy提取数据
  2. 2016.3.2(String 类)
  3. Python入门100题 | 第080题
  4. gis 路径拟合算法_决策树算法十问及经典面试问题
  5. 装饰器,闭包,高阶函数,嵌套函数
  6. android Wifi开发相关内容
  7. as安装过程中gradle_在安装钢结构平台过程中需要注意哪些事项?
  8. 安卓activity生存周期的onCreate、onRestoreInstanceState、onRestart、onStart、onResume、onPause、onStop、onDestroy
  9. android 动画基础,Android 动画基础
  10. openwrt udp服务器_开启tftp服务器 tftp服务器的含义
  11. 制造中心量产推进计划
  12. 你的账户配置为阻止使用计算机,Win10打开软件提示为了对电脑进行保护,已经阻止此应用解决方法...
  13. husky 7 + lint-staged 11+ prettier 2 + eslint 7 配置
  14. Nacos配置热更新两种方式。
  15. EasyTest 接口自动化测试平台 搭建手顺
  16. 求无限循环小数的循环节
  17. python随机森林变量重要性_推荐 :一文读懂随机森林的解释和实现(附python代码)...
  18. USACO Monthly Expense
  19. 多频外差法(三频四步相移)
  20. 一种改进的蚁狮优化算法 改进的ALO算法

热门文章

  1. 大神李沐被曝离职!投身大模型创业,GitHub项目已开
  2. 生活娱乐 装修最容易被忽视的十大装修细节
  3. python图片旋转成水平_python之批量使图片水平翻转
  4. 主板烧糊,大短路,不开机且烧糊成碳了还会导电
  5. 【软件定义汽车】【中间件】iceoryx冰羚
  6. 我的【藏羚头条】开发运营经验
  7. 微信网页扫码登录与微信公众号授权登录的区别
  8. 一寸Timing一寸金,寸金能买寸光阴——CCD
  9. 龙迅LT7911D Type-C/DP/eDP to MIPI DSI/CSI/LVDS 信号转换芯片
  10. 【那些年做过的设计 · 纪念贴】UI设计中移动端和PC端之间具体有什么区别