2025.10.20__2023秋季联赛题解(第11题)

news/2025/10/21 9:54:55/文章来源:https://www.cnblogs.com/hu--/p/19154221

image

题目大意

题意其实很清楚,就是一个模拟对战的游戏。游戏有两个角色 A、B,A 有 hpa 的血量,攻击力为 x;B 有 hpb 的血量,攻击力为 y。
A 每回合有两种操作选择:(1)攻击。对 B 造成 x 点伤害;(2)回血。消耗一瓶血瓶,回复 d 点血。
B 每回合只能执行一种操作:攻击。对 A 造成 y 点伤害。
现在问:A 是否可以通过合理的操作获得胜利?如果可以,输出“ Y ”,否则,输出“ N ”。

思路

我们可以想到,回血是这道题的关键。A 相对与 B 的优势就是可以选择是否回血。
那么可以分类讨论一下:

(1)\(d \le y\),A 一次回血量少于等于 B 的攻击力。

因为 A 每回合只能执行一次操作,如果他回血了就无法攻击。如果 A 的回血量少于 B 的攻击力,那么只要 A 执行回血的操作,然后再被 B 攻击,A 的血量会减少或不变。这样子是没有收益的。
那么在这种情况下,A 只能一直执行攻击的操作才能最大可能的获得胜利。
胜利条件取决于哪一方可以先把对方打死。
只需计算两方以自己的攻击力需要几个回合才能把对方打死,在进行判断即可。

if(d <= y){//下面这种先加上除数 - 1 再去除以除数的操作是为了向上取整。int numa = (hpa + y - 1) / y; // A 打死 B 所需的回合数。int numb = (hpb + x - 1) / x; // B 打死 A 所需的回合数。if(numa >= numb) flag = 1; // 只要 A 的回合数 <= B 的回合数,就说明 A 可以获胜。else flag = 0;
}

(2) \(d > y\), A 一次回血量大于 B 的攻击力。

这时候,A 进行回血操作才有意义。
我们先假设 A 可以打死 B,那么 A 至少要攻击 $K = \left \lceil hpb / x \right \rceil $ ,除了最后一个回合不受 B 的攻击,其余回合都会受到 B 的攻击,即受攻击 \(K- 1\).在这个过程中假设 A 为了活下来使用了 r 次回血。
那么假设成立的条件是什么呢?
就是在这个过程中始终 $ hpa > 0 $,且最终 $ r \le cnt$。
如此,我们就很清晰了。直接模拟上述过程。记录过程中的血量是否小与零,记录使用了多少次回血。

int K = (hpb - x - 1) / x;
int m = K - 1; // A 只需活着经过 K - 1 次攻击轮次就可以,因为 A 最后一次轮不会受到 B 的攻击 
int Hpa = hpa, r = 0, attacksDone = 0; // attacksDone 记录 A 攻击的次数 
while(attacksDone < m && r <= cnt){if(Hpa <= 0) break;int L = (Hpa - 1) / y; // 算出 A 当前血量可以被 B 攻击几次而不需要回血 if(L == 0){Hpa = min(Hpa + d, hpa) - y;r ++;}else{if(attacksDone + L >= m){attacksDone += L;break;}else{attacksDone += L;Hpa -= L * y;Hpa = min(Hpa + d, hpa) - y;r ++;}}
}
if(attacksDone >= m && r <= cnt) flag = 1;
else flag = 0;

完整代码

代码有点多,但不要别吓到哦。实际有用的代码就只有 solve() 函数里的东西,外面的只是我的板子。
然后你们自己写的时候要开long long哦,我这里是#define int long long了。

点击查看代码
#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
using namespace std;using PII = pair<int, int>;#define fi first
#define se second
#define pb push_back
#define all(a) a.begin(), a.end()
#define lowbit(x) (x & (-x))
#define debug(x) cout << #x << " = " << x << "\n";
#define vdebug(a) cout << #a << " = "; for(auto& x: a) cout << x << " "; cout << "\n";const int N=2e5+10,M=1010;
const int mod=1e9+7,MOD=998244353;
const int INF=0x3f3f3f3f;
const int inf=0x3f3f3f3f3f3f3f3f;
const int dx[]={0,0,1,-1},dy[]={1,-1,0,0};int n,m,k;void solve(){int hpa, hpb, x, y, d, cnt;//	cin >>  hpa >> hpb >> x >> y >> d >> cnt;scanf("%lld %lld %lld %lld %lld %lld",&hpa, &hpb, &x, &y, &d, &cnt);int flag = 0;if(hpb - x <= 0){flag = 1;}else if(hpa - y <= 0){flag = 0;}else if(d <= y){int numa = (hpa + y - 1) / y; // A 打死 B 所需的回合数 int numb = (hpb + x - 1) / x; // B 打死 A 所需的回合数 if(numa >= numb) flag = 1; // 只要 A 的回合数 <= B 的回合数,就说明 A 可以获胜。 else flag = 0;}else{int K = (hpb - x - 1) / x;int m = K - 1; // A 只需活着经过 K - 1 次攻击轮次就可以,因为 A 最后一次轮不会受到 B 的攻击 int Hpa = hpa, r = 0, attacksDone = 0; // attacksDone 记录 A 攻击的次数 while(attacksDone < m && r <= cnt){if(Hpa <= 0) break;int L = (Hpa - 1) / y; // 算出 A 当前血量可以被 B 攻击几次而不需要回血 if(L == 0){Hpa = min(Hpa + d, hpa) - y;r ++;}else{if(attacksDone + L >= m){attacksDone += L;break;}else{attacksDone += L;Hpa -= L * y;Hpa = min(Hpa + d, hpa) - y;r ++;}}}if(attacksDone >= m && r <= cnt) flag = 1;else flag = 0;}//	if(flag) cout << "Y" << endl;//	else cout << "N" << endl;if(flag) printf("Y\n");else printf("N\n");
}signed main(){
//	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int _=1;cin>>_;while(_--) solve();return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/941986.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker怎么更新版本

docker怎么更新版本

B树和B+树的解析应用

B树和B+树是两种重要的多路平衡搜索树结构,广泛应用于数据库和文件系统领域。下面我们将从C语言实现的角度深入解析它们的原理和实现细节。 一、B树解析 1. 结构定义 #define M 4 // B树的阶数(每个节点最多有M-1个…

最短路分治

trick其实就是快速维护网格图最短路相关的东西,可以带修之类的。Problem: 给出一个 \(n \times m\) 的网格图,格子有权值,要求支持待修改并查询两点间最短路。 \(n \le 2 \times 10^5, m \le 5, q \le 2\times 10^5…

LangChain4j 比 SolonAI 强在哪?弱在哪?

本文对比了Java生态中两大AI框架LangChain4j和Solon AI的差异。功能方面,二者都支持LLM、RAG和MCP接口,但LangChain4j功能更丰富,尤其是RAG适配更全面。使用体验上,Solon AI明显更简洁,如流式对话仅需单行代码,而…

2025 年广州心理疏导机构推荐:桥恩心理多维度服务满足不同人群心理健康需求

随着社会节奏加快,人们面临的心理压力日益增加,心理健康问题逐渐受到广泛关注,心理疏导行业也随之快速发展。在广州这座人口密集、竞争激烈的城市,从青少年的厌学网瘾问题,到成年人的婚姻情感矛盾、职场人际困扰,…

2025 年快速退火炉优质厂家最新推荐榜单:真空 / 半导体 / 晶圆 / 高温 / 桌面等多类型设备企业权威评选

引言 当前,3C、半导体、光伏、汽车等行业迅猛发展,对快速退火炉的需求持续增长,然而市场现状却给企业选购带来诸多困扰。众多厂家中,部分缺乏核心技术,产品性能不稳定,无法满足高精度生产需求;同时,产品质量参…

实用指南:K230基础-显示画面

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年深圳心理疏导机构推荐,桥恩心理:专业心理疏导服务的优质选择与全体系诊疗优势

行业背景 随着社会节奏加快,生活压力、工作挑战、家庭关系等多重因素交织,深圳市民对心理疏导服务的需求日益增长。从青少年的厌学、网瘾问题,到成年人的婚姻情感矛盾、职场人际困扰,再到中老年群体的情绪压力问题…

2025年10月河南园区招商扶持公司推荐:五强对比评测榜

一、引言 对于计划在豫布局的创业者、制造型采购负责人及区域总部拓展团队而言,园区招商扶持公司既是政策落地的“翻译官”,也是要素资源的“整合器”。能否在土地、税收、人才、物流等关键环节拿到真实可兑现的红利…

OIFC NOI2023省队集训

T1 绕口令 twister 字符串题意 给定环形字符串 \(s\),对 \(k\) 从 \(1\) 到 \(n\),判断是否能删去一个长 \(k\) 子段,使得剩余部分无相邻相同字符。考虑已有的相邻相同字符,必须截断。再删去一个子段可能导致剩余部…

KingbaseES 启动失败故障排查

KingbaseES 启动失败故障排查KingbaseES 作为国产数据库的主流产品,在日常运维中难免遇到启动失败的问题。这类故障多与配置参数、系统资源或端口冲突相关,核心排查思路是 “日志定位问题 + 配置 / 系统匹配验证”。…

大数据Spark(六十四):Spark算子介绍 - 详解

大数据Spark(六十四):Spark算子介绍 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

2025年10月手操器公司推荐:对比评测榜揭示工业诊断选型要点

一、引言 在流程工业迈向智能化运维的当下,手操器已不仅是现场调校的辅助工具,更是资产完整性管理的数据入口。对于需要采购、升级或替换手操器的仪表工程师、设备经理以及项目承包商而言,核心诉求集中在三点:一是…

SqlServer 事务复制(transaction replication)的复制位点信息

SqlServer 事务复制(transaction replication)的复制位点信息在逻辑复制中,正如MySQL的show slave status,或者postgresql的逻辑复制pg_stat_replication的sent_lsn,来观察复制进度的坐标位点,其复制进度坐标位置…

2025年10月儿童面霜品牌推荐:五强榜单对比评测与选购指南

一、引言 秋末冬初,气温骤降、湿度骤降,0到12岁儿童角质层厚度仅为成人三分之二,经皮失水速度却高出近三成,皴裂、干痒、苹果脸集中爆发。对于每天要为孩子擦脸、又要控制家庭洗护预算的家长而言,如何在“安全、有…

机器人技术领域多元人才培养计划解析

本文介绍了某机构机器人部门举办的"第一天"奖学金项目,该项目旨在支持多元背景技术人才攻读硕士学位,涵盖机器人技术、人工智能等前沿领域研究,并提供实习机会与专业指导,推动技术创新与行业多样性发展。…

20251018NOIP模拟赛

题目大意: 给你一个长度为 \(2 \times n\) 的由 \(\text{(}\) 和 \(\text{)}\) 构成的串,再给你 \(n\) 个二元组 \(a < b\),保证所有的 \(a\) 与 \(b\) 构成了一个长度为 \(2 \times n\) 的排列。 问能否选出一个…

实战案例:职行力如何利用纷享销客CRM实现人效管理数字化突围?

当数字化服务商自身需要数字化转型,会碰撞出怎样的火花?国内领先的人效运营管理平台职行力,服务建发集团、紫金矿业等世界500强企业,为安踏、七匹狼等头部企业人效提升提供解决方案,却选择与纷享销客携手——仅用…

吐槽下特斯拉汽车

吐槽下特斯拉汽车吐槽下特斯拉汽车 1、他的刹车系统可靠性不足,真的有问题。有很多出事故的案例。 2、单踏板模式与常规操作惯例不同,需要用户改变驾驶习惯,紧急情况下容易把油门当刹车误操作引起事故。 3、隐藏式电…

2025年10月素材平台对比评测榜:高品图像领衔五强深度解析

一、引言 在内容生产节奏以小时计的当下,创业者、品牌方、新媒体编辑、教育出版机构对“正版、高清、可商用”素材的需求已从“锦上添花”变成“刚需”。选错平台,轻则授权链路断裂导致下架,重则高额索赔;选对平台…