题解:P11599 『Fwb』神话の传播

· · 题解

题目传送门

题目思路

题目中已经给出了追的天数的计算公式:\lceil \frac{n}{x}\rceil,所以我们只需要求出补充能量的天数。不难发现,若每 k 天要补充能量的话,补充能量的天数为 \lceil \frac{\lceil\frac{n}{x}\rceil}{k}\rceil-1(第一次行动不需要能量所以要减一)。

实现

如何实现向上取整?判断 n 是否能被 k 整除,若能整除那就取 \left \lfloor \frac{x}{y} \right \rfloor,否则取 \left \lfloor \frac{x}{y} \right \rfloor + 1

代码

#include <iostream>

using namespace std;

int n, x, k;

int main (){
    cin >> n >> x >> k;
    int run = (n % x == 0 ? n / x : n / x + 1);
    int breaken = (run % k == 0 ? run / k : run / k + 1) - 1;
    cout << breaken + run << '\n';
    return 0;
}