题解:B4182 [中山市赛 2024] 海洋宝宝

· · 题解

题目简述

n 颗海洋宝宝,每小时每颗可以生出 k 颗海洋宝宝,求生出 m 颗海洋宝宝需要几小时。

主要思路

按题意模拟即可。记录一个海洋宝宝数量的变量 cnt,初值为 n,每小时 cnt \to cnt + cnt \times k

注意:在 cnt 变化的时候,由于 n,k < 10^{9},而 n \times k 达到了 10^{18},所以:十年 OI 一场空,_____

AC Code

#include<iostream>
using namespace std;

typedef long long ll;

int main() {
    int n, k, m;
    cin >> n >> k >> m;
    // ----------------------------
    ll cnt = n;
    int ans = 0;
    for (; cnt < m; ans++) cnt += cnt * k;
    // ----------------------------
    cout << ans;
    return 0;
}