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

· · 题解

思路

我们先把体力充足下的时间 day=\lceil \frac{n}{x} \rceil 算出来,然后算出如果体力不够时 day \times 1(体力数) 与 k 的差。因为休息一次补充 k 点体力,所以要休息 \lceil\frac{cha}{k}\rceil,则答案就是 day+\lceil\frac{cha}{k} \rceil

Code

#include <bits/stdc++.h>
#define fro for
using namespace std;
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    //freopen (".in","r",stdin);
    //freopen (".out","w",stdout);
    int n,x,k;
    cin>>n>>x>>k;
    int day=ceil(n*1.0/x);
    int cha=max(0,day-k);
    cout<<day+ceil(cha*1.0/k);
    return 0;
}