JOURNAL ENTRY

CSP 2023 T1 题解

小苹果

链接:https://www.luogu.com.cn/problem/P9748

思路

第一问比较简单。我们发现,每天拿走的苹果的总数除 $3$ 向上取整,换种说法:定义 $m$ 为目前的总数,那么每天取走的就是 $\lfloor\frac{m}{3}\rfloor$。

在看第二问的时候,我们发现了题目问的恰好是第 $n$ 个苹果什么时候取走,那么我们按上面的方式,当 $m \bmod 3 = 1$,那么苹果就是那一轮拿走的。

代码

#include <bits/stdc++.h>
using namespace std;
long long a[10005] = {1}, n, I, tt, II;
int main() {
    cin >> n;
    for (int i = 1; i <= 33; i ++) a[i] = a[i - 1] * 3;
    int nn = n;
    while (n) {
        long long t = (n + 2) / 3;
        n -= t;
        I ++;

    }
    while (nn) {
        long long t = (nn + 2) / 3;
        if (nn % 3 == 1) {
            tt = II;
            break;
        }
        nn -= t;
        II ++;
        // if (nn % 3 == 1) {
        //     tt = II;
        //     break;
        // }
    }
    cout << I << " " << tt + 1;
    return 0;
}

继续阅读

评论 (0)

取消