计算小杨击败怪物

news/2026/1/25 17:35:53/文章来源:https://www.cnblogs.com/kkman2000/p/19530179

这个问题需要计算小杨击败怪物所需的最少攻击次数。怪物血量为 h,小杨可以使用物理攻击(第 i 次造成 2^{i-1} 点伤害)和至多一次魔法攻击(选择一个不超过当前血量的质数 x 造成伤害)。目标是使怪物血量恰好为 0

方法思路

  1. 问题分析:物理攻击的伤害是2的幂次序列(1, 2, 4, ...),连续使用 k 次物理攻击的总伤害是 2^k - 1。魔法攻击只能使用一次,伤害为质数 x
  2. 关键观察
    • 如果只使用物理攻击,则 h 必须等于 2^k - 1,攻击次数为 k
    • 如果使用魔法攻击和物理攻击,总伤害为 x + (2^k - 1) = h,即 x = h - (2^k - 1) 必须为质数且 x ≥ 2,攻击次数为 k + 1
  3. 算法选择:枚举可能的物理攻击次数 k(从0到上限,如20),检查上述条件,取最小攻击次数。若没有可行方案,返回 -1
  4. 质数判断:使用试除法检查 x 是否为质数,优化到检查到 √x

解决代码

#include <iostream>
#include <climits>
using namespace std;bool is_prime(int n) {if (n < 2) return false;if (n == 2) return true;if (n % 2 == 0) return false;for (int i = 3; i * i <= n; i += 2) {if (n % i == 0) return false;}return true;
}int main() {int t;cin >> t;while (t--) {int h;cin >> h;int min_attacks = INT_MAX;for (int k = 0; k <= 20; k++) {long long power = (1LL << k) - 1;if (power > h) break;if (power == h) {if (k < min_attacks) {min_attacks = k;}} else {int x = h - power;if (x >= 2 && is_prime(x)) {if (k + 1 < min_attacks) {min_attacks = k + 1;}}}}if (min_attacks == INT_MAX) {cout << -1 << endl;} else {cout << min_attacks << endl;}}return 0;
}

代码解释

  1. 质数判断函数 is_prime:检查输入整数 n 是否为质数。首先处理小于2、等于2和偶数的情况,然后检查奇数因子到 √n
  2. 主函数
    • 读取测试用例数 t
    • 对每个测试用例:
      • 初始化 min_attacks 为极大值。
      • 枚举物理攻击次数 k,计算 2^k - 1
      • 如果 2^k - 1 == h,更新 min_attacksk
      • 否则计算 x = h - (2^k - 1),若 x 是质数且 ≥2,更新 min_attacksk + 1
    • 输出结果:如果找到可行方案,输出最小攻击次数;否则输出 -1

该方法通过枚举和质数检查,高效地找到了最优解,适用于给定的约束条件。

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

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

相关文章

支付宝消费券回收(方法、流程、折扣)全指南

随着移动支付广泛普及,大量闲置的支付宝消费券因过期或使用限制,造成资源浪费。数据显示,2025年全国未核销消费券规模超12亿元,60%因失效白白流失。高效回收支付宝消费券,既能避免经济损失,也是对资源的优化配置…

如何检查本地 / 远程端口是否打开 ?

在 Linux 中&#xff0c;端口是一个编号的网络连接&#xff0c;它允许设备通过 Internet 或本地网络与其他设备通信。确保端口是开放和可访问的非常重要&#xff0c;它确保网络业务的正常运行。在本文中&#xff0c;我们将讨论五个检查 Linux 中端口是否打开的常用方法。 Chec…

网络威胁情报:构建你自己的情报源——DIY情报系统如何阻止零日攻击

网络威胁情报&#xff1a;构建你自己的情报源 DIY情报系统如何阻止零日攻击 警报在凌晨2点17分响起&#xff1a;未知恶意软件正在窃取薪资数据。我们每年花费50万美元的商业威胁源毫无反应。但我自制的智能系统却立即发出了警报——因为三天前&#xff0c;我已在我们的行业论坛…

Itasca PFC6.0 HCA空心扭剪试验 很久没有发布新品了 最近很忙 以后会抽空陆续上新

Itasca PFC6.0 HCA空心扭剪试验 很久没有发布新品了 最近很忙 以后会抽空陆续上新 这次上新HCA空心扭剪试验的模拟 采用6.0的flac耦合shell单元模拟内外柔性膜 采用创新方法施加扭转 且能稳定控制主应力角 这个模型还有很大的开发空间 最近实验室的师弟问我PFC6.0能不能玩点新花…

Java程序员如何一周速通Redis?

Redis想必大家都听说过&#xff0c;不管是面试还是工作上我们都能见到。但是Redis到底能干什么&#xff1f;又不能干什么呢&#xff1f;&#xff08;如下图&#xff09;为什么要用Redis&#xff1f;上面说了Redis的一些使用场景&#xff0c;那么这些场景的解决方案也有很多其它…

Java分布式系统开发与实践!

我们都知道&#xff0c;目前大型网站跟企业级应用目前的要求都是达到“互联网三高”&#xff0c;这时传统的集中式系统肯定是无法满足基本的需求的&#xff0c;越来越多的企业的系统架构目前都是向着分布式系统的方向演进。分布式系统的特征分布式系统相对于传统的集中式系统来…

Java程序员请注意:Redis进阶骚操作都在这里了!

大家都知道Redis的业务范围是非常广的&#xff0c;但是对于刚入行的小伙伴来说可能也就知道个缓存跟分布式锁。因为Redis的很多功能在一些小企业里&#xff0c;根本是用不到的&#xff0c;得等到并发量到了一定的程度&#xff0c;系统扛不住了&#xff0c;才会用到Redis那些高级…

基于狼群优化算法的LSSVM回归预测GWO-LSSVM 为了提高最小二乘支持向量机(lssvm...

基于狼群优化算法的LSSVM回归预测GWO-LSSVM 为了提高最小二乘支持向量机&#xff08;lssvm&#xff09;的回归预测准确率&#xff0c;对lssvm中的惩罚参数和核惩罚参数利用灰狼优化算法进行优化。 Matlab 代码调参这事儿在机器学习里总让人头疼&#xff0c;就像在漆黑的森林里找…

探寻2026四川电梯广告优选:口碑与实力并存,电梯广告/电梯视频广告/户外LED广告/高铁广告,电梯广告品牌推荐榜单

随着城市消费场景的持续升级,电梯广告作为高频触达都市中产群体的核心媒介,正成为品牌方抢占消费者心智的“黄金入口”。据第三方机构统计,2025年四川电梯广告市场规模突破45亿元,年复合增长率达18%,其中成都、绵…

2025年气动旋转接头实力榜:国内哪些厂家最靠谱?气电滑环/集电环/电滑环/气动旋转接头,气动旋转接头供应厂家推荐

随着工业自动化、机器人及高端装备制造业的蓬勃发展,作为实现设备旋转部分与固定部分之间介质(如气体、电信号)连续传输的关键部件,气动旋转接头的市场需求持续增长。然而,市场繁荣的背后也伴随着挑战:产品同质化…

吐血推荐!本科生AI论文工具TOP9:开题报告全攻略

吐血推荐&#xff01;本科生AI论文工具TOP9&#xff1a;开题报告全攻略 2026年本科生AI论文工具测评&#xff1a;为何值得一看 随着人工智能技术的不断进步&#xff0c;越来越多的本科生开始借助AI写作工具提升论文写作效率。然而&#xff0c;面对市场上琳琅满目的选择&#xf…

转行简历怎么写?简历制作网站模板直达,HR认可更易过

投了几十份简历都没回应&#xff1f;应届生不会写简历、跳槽族不知道如何突出业绩、转行人士找不到匹配模板&#xff0c;甚至排版混乱、信息堆砌&#xff0c;直接被HR pass——这是不是你的求职难题&#xff1f;HR筛选简历只花3秒&#xff01;核心看4点&#xff1a;基本信息简洁…

电商GIF主图制作教程?高效 GIF 压缩工具免费攻略

电商运营做产品主图、教师制作课件素材、设计师设计社交平台配图时&#xff0c;常遇到 GIF 制作步骤繁琐、压缩后画质模糊、格式转换后无法适配平台的问题&#xff0c;耗费大量精力却达不到预期效果。这里分享精准的 GIF 规格参考&#xff1a;电商主图 GIF 建议 800800px、播放…

学长亲荐8个一键生成论文工具,研究生轻松搞定论文写作!

学长亲荐8个一键生成论文工具&#xff0c;研究生轻松搞定论文写作&#xff01; 论文写作的“加速器”&#xff1a;AI 工具如何改变研究生的学习节奏 在当今学术研究日益复杂的背景下&#xff0c;研究生们面对的不仅是繁重的课程任务&#xff0c;还有论文写作带来的巨大压力。…

C#上位机模板程序,使用的是台达AS228主机PLC,功能齐全,自动运行页面、切换页面、手动调...

C#上位机模板程序&#xff0c;使用的是台达AS228主机PLC&#xff0c;功能齐全&#xff0c;自动运行页面、切换页面、手动调试、参数设置页面都有。 最近在工业自动化项目里摸爬滚打&#xff0c;发现台达AS228这PLC真是经得起折腾的主儿。刚好手头有个自用的C#上位机模板&#x…

三菱FX1N与3台东元Teco N310变频器通讯实战之旅

三菱FX1N与3台东元Teco N310变频器通讯实战程序可直接拿来实用了&#xff0c;三菱FX PLC与东元N310变频器modbus RTU通讯采用器件&#xff1a;三菱FX1N 24MT PLC&#xff0c;1个FX1N 485BD板&#xff0c;3个东元Teco N310系列变频器。 也可以是FX2N&#xff0c;FX2N 485BD功能&…

YOLO26改进 - 卷积Conv | SPD-Conv空间深度转换卷积优化空间信息编码,攻克小目标检测难题

前言 本文介绍了一种名为SPD-Conv的新型CNN构建块及其在YOLO26中的结合。传统CNN在处理低分辨率图像或小物体时&#xff0c;因使用步长卷积和池化层导致细粒度信息丢失、性能下降。SPD-Conv由空间到深度&#xff08;SPD&#xff09;层和非步长卷积&#xff08;Conv&#xff09…

在线 GIF 生成如何保画质?高效 GIF 制作工具实操指南

做自媒体配图、电商主图或课件动图时&#xff0c;总遇到 GIF 制作复杂、视频转 GIF 步骤繁琐&#xff0c;转换后格式不兼容&#xff0c;甚至动图太大无法上传的问题&#xff0c;浪费大量时间还没效果。这里给大家分享实用的 GIF 规格参考&#xff1a;微信动图建议尺寸 400400px…

自媒体配图GIF大小 怎么弄?高效动图裁剪工具实操教程

自媒体剪短视频配动图、校园社团做招新宣传图、职场做汇报 PPT 动图时&#xff0c;总碰到视频转 GIF 素材提取麻烦、动图裁剪尺寸不合规、GIF 压缩后画面糊成一团&#xff0c;最后没法上传或展示的问题&#xff0c;白白耽误不少时间。这里分享适配新场景的 GIF 规格&#xff1a…