B3962 [语言月赛 202404] 游乐场 题解
Source & Knowledge
2024 年 4 月语言月赛,由洛谷网校入门计划/基础计划提供。
题目大意
妈妈每天会给小明
妈妈计划带小明去游乐场
求最终乘坐旋转木马的总次数。
题目分析
一个比较容易想到的思路是,使用一个 for 循环按天枚举,每天获得
但是
由于 for 循环,每次读入
int current_money = 0; // 当前攒了多少钱
int x, y = 0; // 初始时为第 0 天
...
for (int i = 1; i <= n; i++) {
cin >> x;
current_money += (y - x); // 上一次到这一次一共攒了多少钱
if (current_money > 50) current_money = 50; // 如果超过了 50 元,则不会有零花钱
// 计算可以坐多少次旋转木马
y = x; // 坐完旋转木马,这一天变为“上一次去游乐园在哪一天”
}
计算在有 current_money 元钱的情况下,可以坐多少次旋转木马。每 current_money / 8(这里的 / 是 C++ 中的整除)。
int ans = 0;
for ... {
...
ans += current_money / 8;
current_money -= (current_money / 8) * 8;
...
}