news 2026/7/5 1:26:29

《B4050 [GESP202409 五级] 挑战怪物》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《B4050 [GESP202409 五级] 挑战怪物》

题目背景

对应的选择、判断题:试题 - GESP 202409 C++ 五级 - 洛谷有题

题目描述

小杨正在和一个怪物战斗,怪物的血量为 h,只有当怪物的血量恰好为 0 时小杨才能够成功击败怪物。

小杨有两种攻击怪物的方式:

  • 物理攻击。假设当前为小杨第 i 次使用物理攻击,则会对怪物造成 2i−1 点伤害。
  • 魔法攻击。小杨选择任意一个质数 x( 不能超过怪物当前血量),对怪物造成 x 点伤害。由于小杨并不擅长魔法,他只能使用至多一次魔法攻击。

小杨想知道自己能否击败怪物,如果能,小杨想知道自己最少需要多少次攻击。

输入格式

本题单个测试点内有多组测试数据。第一行包含一个正整数 t,代表测试用例组数。

接下来是 t 组测试用例。对于每组测试用例,只有一行一个整数 h,代表怪物血量。

输出格式

对于每组测试用例,如果小杨能够击败怪物,输出一个整数,代表小杨需要的最少攻击次数,如果不能击败怪物, 输出 −1。

输入输出样例

输入 #1复制

3 6 188 9999

输出 #1复制

2 4 -1

说明/提示

样例 1 解释

对于第一组测试用例,一种可能的最优方案为,小杨先对怪物使用魔法攻击,选择质数 5 造成 5 点伤害,之后对怪 物使用第 1 次物理攻击,造成 21−1=1 点伤害,怪物血量恰好为 0,小杨成功击败怪物。

数据规模与约定

子任务编号分数占比th
120%≤5≤10
220%≤10≤100
360%≤10≤105

对于全部的测试数据,保证 1≤t≤10,1≤h≤105。

代码实现;

#include <bits/stdc++.h> using namespace std; bool isPrime(int x) { if (x < 2) return false; for (int i = 2; i * i <= x; i++) { if (x % i == 0) return false; } return true; } int solve(int h) { int ans = INT_MAX; for (int i = 0; i <= 30; i++) { int damage = (1 << i) - 1; if (damage > h) break; int remain = h - damage; if (remain == 0) { ans = min(ans, i); } if (remain >= 2 && isPrime(remain)) { ans = min(ans, i + 1); } } return ans == INT_MAX ? -1 : ans; } int main() { int t; cin >> t; while (t--) { int h; cin >> h; cout << solve(h) << endl; } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 1:26:24

【硬件笔记】DCDC电源设计—BUCK电路设计要点

目录 1.1 BUCK电路中&#xff0c;PCB 布局该注意哪些?1.1.0 BUCK 电路的结构框图1.1.1 功率回路&#xff1a;电感放电回路1.1.2 逻辑电路部分&#xff1a;自举电容1.1.3 逻辑电路部分&#xff1a;反馈电路1.1.3.1 FB 引脚1.1.3.2 VCC 引脚1.1.3.3 单点接地 1.2 BUCK 电路中&am…

作者头像 李华
网站建设 2026/7/5 1:24:54

React 拖拽排序:动画流畅之前先保证数据顺序可信

React 拖拽排序&#xff1a;动画流畅之前先保证数据顺序可信 一、拖拽体验最怕视觉和数据不一致 React 应用里做拖拽排序很常见&#xff1a;看板、素材库、任务列表、画布图层。用户拖动时&#xff0c;动画很重要&#xff0c;但更重要的是数据顺序可信。视觉上已经换了位置&a…

作者头像 李华
网站建设 2026/7/5 1:23:35

Codex 额度不够用?2026 国内稳定订阅渠道推荐

最近不少做开发的同行都在吐槽同一个问题&#xff1a;日常写代码、重构项目时 Codex 额度消耗太快&#xff0c;经常写到一半触发限流&#xff0c;打断整体开发节奏。对比前两年&#xff0c;现在很多人不是不知道升级 Pro 能扩容额度&#xff0c;而是卡在支付开通环节。有人折腾…

作者头像 李华
网站建设 2026/7/5 1:22:47

AI 家庭相册整理:照片时间线比炫酷识别更重要

AI 家庭相册整理&#xff1a;照片时间线比炫酷识别更重要 一、相册整理先要让回忆可找回 AI 相册工具很容易展示炫酷能力&#xff1a;识别人脸、地点、食物、宠物、节日。但家庭相册真正需要的&#xff0c;是让回忆可找回。某一年、某次旅行、某个生日、某段成长过程&#xff0…

作者头像 李华
网站建设 2026/7/5 1:22:39

基于STM32单片机智能气象站环境监测风速风向气压光照雨水设计13(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于STM32单片机智能气象站环境监测风速风向气压光照雨水设计13(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 版本1&#xff1a;温湿度PM2.5光照声光报警 TFT液晶显示屏显示参数和信息DHT11采集当前温度和湿度PM2.5采集当前…

作者头像 李华
网站建设 2026/7/5 1:21:39

Raft 日志压缩窗口:Snapshot 太勤和太懒都危险

Raft 日志压缩窗口&#xff1a;Snapshot 太勤和太懒都危险 一、日志不能无限增长 Raft 集群运行久了&#xff0c;日志会不断增长。Snapshot 可以压缩历史日志&#xff0c;减少磁盘占用和新节点追赶成本。但 Snapshot 太勤&#xff0c;会增加 IO 和状态机序列化压力&#xff1b;…

作者头像 李华