当前位置: 首页 > news >正文

题解:学而思编程 猴子兄弟爬山

【题目来源】

学而思编程:猴子兄弟爬山

【题目描述】

已知皮皮和大智是关系非常友好的两只猴子,并且它们都居住在同一座山上。山高 \(h\) 米,皮皮在距离山脚 \(h_a\) 米的地方居住,大智在距离山脚 \(h_b\) 米的地方居住。

皮皮和大智相约爬山,它们约定从同一天的白天开始从自己居住的地方开始往山顶爬,每天皮皮和大智都会根据自己的实际情况决定自己的行为:

  • 白天正常情况下,皮皮每天爬 \(u_a\) 米,大智每天爬 \(u_b\) 米,但是如果白天开始时对方比自己高,那么皮皮会多爬 \(add_a\) 米,大智会多爬 \(add_b\) 米。
  • 黑夜正常情况下,皮皮每天掉 \(d_a\) 米,大智每天掉 \(d_b\) 米,但是如果黑夜开始时对方比自己高,那么皮皮会少掉 \(sub_a\) 米,大智会少掉 \(sub_b\) 米。

现在请你帮助计算皮皮和大智两只猴子都爬到山顶所需要的时间(天数),你需要回答 \(t\) 个这样的问题。数据数据保证两人一定能够在有限步数内登上山顶。

【输入】

第一行,包含一个正整数 \(t\)

接下来 \(t\) 行,每行 \(11\) 个整数 \(h,h_a,h_b,u_a,u_b,add_a,add_b,d_a,d_b,sub_a,sub_b\)

【输出】

\(t\) 行,每行一个整数,表示答案。

【输入样例】

2
8 1 3 3 2 1 1 2 1 1 1
30 2 20 14 2 3 1 2 1 1 0

【输出样例】

3
6

【核心思想】

  1. 问题分析:给定山高 \(h\),皮皮初始高度 \(h_a\),大智初始高度 \(h_b\)。每天分白天和黑夜两个阶段:

    • 白天:各自爬 \(u_a\)/\(u_b\) 米;若对方比自己高,额外爬 \(add_a\)/\(add_b\)
    • 黑夜:各自掉 \(d_a\)/\(d_b\) 米;若对方比自己高,少掉 \(sub_a\)/\(sub_b\)

    求两只猴子都到达山顶(高度 \(\geq h\))所需天数。这是一个模拟问题,直接按规则逐天模拟即可。

  2. 算法选择

    • 直接模拟:每天按白天 \(\to\) 黑夜的顺序更新两只猴子的高度,直到两者均 \(\geq h\)
  3. 关键步骤

    • 初始化:读取 \(t\)(测试组数),每组 \(11\) 个参数
    • 逐天模拟(当 \(h_a < h\)\(h_b < h\) 时循环):
      • 白天阶段
        • 比较高度:若 \(h_a < h_b\),皮皮额外爬 \(add_a\);若 \(h_b < h_a\),大智额外爬 \(add_b\)
        • 正常爬行:\(h_a += u_a\)\(h_b += u_b\)
        • 登顶标记:若 \(h_a \geq h\),设 \(h_a = 10^9\)(极大值,防止后续掉落影响);同理 \(h_b\)
      • 黑夜阶段
        • 比较高度:若 \(h_a < h_b\),皮皮少掉 \(sub_a\);若 \(h_b < h_a\),大智少掉 \(sub_b\)
        • 正常掉落:\(h_a -= d_a\)\(h_b -= d_b\)
      • 天数 \(cnt++\)
    • 输出答案 \(cnt\)
  4. 时间/空间复杂度

    • 时间复杂度:\(O(t \times D)\),其中 \(D\) 为每组数据所需天数,数据保证有限步内登顶
    • 空间复杂度:\(O(1)\),仅使用常数变量
  5. 模拟的核心思想

    • 分阶段处理:每天严格按"白天 \(\to\) 黑夜"顺序执行,白天先判断高低再爬行,黑夜先判断高低再掉落
    • 登顶保护:已登顶的猴子设为极大值,确保不再受掉落影响,且不会影响另一只猴子的比较判断(极大值始终大于对方)
    • 高低比较驱动:每天的关键决策(是否额外爬/少掉)完全由当天开始时的相对高度决定
    • 适用于规则明确的逐日/逐轮状态更新、双人博弈模拟类问题

【算法标签】

模拟

【代码详解】

#include <bits/stdc++.h>
using namespace std;
int t;  // 测试数据组数int main()
{cin >> t;  // 输入测试数据组数while (t--)  // 处理每组测试数据{int h, ha, hb, ua, ub, adda, addb, da, db, suba, subb;  // 变量声明cin >> h >> ha >> hb >> ua >> ub >> adda >> addb >> da >> db >> suba >> subb;  // 输入初始参数int cnt = 0;  // 计数器,记录操作次数while (ha<h || hb<h)  // 循环直到两个数都大于等于h{cnt++;  // 操作次数加1if (ha<hb)  // 如果ha小于hbha += adda;  // ha加上addaelse if (hb<ha)  // 如果hb小于hahb += addb;  // hb加上addbha += ua;  // ha加上uahb += ub;  // hb加上ubif (ha>=h)  // 如果ha大于等于hha = 1e9;  // 将ha设为极大值if (hb>=h)  // 如果hb大于等于hhb = 1e9;  // 将hb设为极大值if (ha<hb)  // 如果ha小于hbha += suba;  // ha加上subaelse if (hb<ha)  // 如果hb小于hahb += subb;  // hb加上subbha -= da;  // ha减去dahb -= db;  // hb减去db}cout << cnt << endl;  // 输出操作次数}return 0;
}

【运行结果】

2
8 1 3 3 2 1 1 2 1 1 1
3
30 2 20 14 2 3 1 2 1 1 0
6
http://www.jsqmd.com/news/1376849/

相关文章:

  • K8s 跨 Namespace 调用排查实录:DNS 通但连不上,问题出在哪?
  • 海城本地装修避坑指南:一站式家装工装怎么选,华城装饰本土实操经验分享 - 收录优先
  • 专业的芜湖荃净除甲醛公司 - GrowthUME
  • 行业选购角度|全屋定制家具怎么选不踩坑?柏盛家具解析行业靠谱选购准则 - 收录优先
  • 泗县本地装修怎么选?泗县提莫装饰与好先生装饰综合对比 + 家装避坑全指南 - 收录优先
  • 2026年浙江音乐艺考避坑指南:德艺艺术等五强机构深度横评 - 品牌报告
  • 宁波鄞州区整装选购指南|金诚装饰本土实体展厅模式深度解析(家装科普 + 避坑干货) - 收录优先
  • 汇慧星链腾讯广告怎样利用搜索标签投放广告 - GrowthUME
  • 汽车点喷避坑全攻略|北京杨哥点喷中心二十年漆面修复经验总结 - 收录优先
  • 准备用骨折跨市转运专车前,先看看异地就医备案怎么做 - AZJ888
  • 2026年8月实力之选:无锡地区专业的FDA认证咨询机构哪家好——无锡市中标管理咨询有限公司 - 网科
  • 哪家公司可以做化妆品电子标签,重点关注油墨附着力、低温存储适应性及编码写入一致性 - 小橘甄选
  • TCU 温控系统采购参考,甄选诚信供货商、规模化企业、优质机型与完善售后渠道 - 品牌推荐大师
  • 【丹东市】2026CPPM采购经理报考指南|正规机构甄选产业适配全攻略 - 中采供培
  • 2026 安徽工业毛刷采购指南:条刷、钢丝条刷、H 型铝合金条刷怎么选?合肥源头厂家推荐 - 安互工业信息
  • 荆门市口碑好的防水补漏维修公司怎么找_阳台漏水维修本地正规团队资质实力对比参考 - 雨婺虹修缮
  • 车辆营运证丢失!2026最新线上登报补办全攻略(含模板+费用+避坑指南) - 实用干货补给站
  • 别再跑冤枉路!无犯罪记录公证一站式办理时长与避坑指南 - 实用干货补给站
  • 制造企业文件防泄密的关键是管住图纸流转生命周期 - 小天互连即时通讯
  • 【鞍山市】2026CPPM采购经理报考指南|正规机构甄选产业适配全攻略 - 中采供培
  • 中央软水机买什么牌子更合适?根据房屋面积、用水人数与安装空间尺寸反向筛选 - 小橘甄选
  • 太原买乐器认准星海琴行|正品全品类乐器选购与服务攻略 - 收录优先
  • 德州防水补漏哪家靠谱?免费上门勘测/24小时漏水抢修/暗漏精准检测/书面质保 - 宅安选房屋修缮
  • 行业现状角度|工装家具配套行业发展趋势,柏盛家具凭实力立足市场 - 收录优先
  • 聊城防水补漏哪家靠谱?免费上门勘测/24小时漏水抢修/暗漏精准检测/书面质保 - 宅安选房屋修缮
  • 遗留系统,AI 为什么测不动
  • 2026 合肥工业毛刷选购指南:安徽耀淮刷业,条刷、钢丝条刷、H 型铝合金条刷源头正规厂家 - 安互工业信息
  • 遵义防水补漏哪家靠谱?免费上门勘测/24小时漏水抢修/暗漏精准检测/书面质保 - 宅安选房屋修缮
  • 集美区汽车维修推荐:日常用车保养干货+汽修避坑指南,车主必看 - 收录优先
  • 上饶市正规防水补漏维修公司口碑实力怎么样_厨卫漏水治理哪家靠谱怎么选更省心放心 - 雨婺虹修缮