2 条题解

  • 0
    @ 2025-3-29 1:37:47

    直接用队列模拟即可

    #include<cstdio>
    #include<iostream>
    #include<vector>
    #include<map>
    #include<cstring>
    #include<array>
    #include<queue>
    #include<algorithm>
    #include<set>
    #include<cmath>
    using namespace std;
    using i64=long long;
    //using i128=__int128;
    const i64 INF=1e18;
    const int mod=998244353;
    //const int N=1e9+7;
    void solve(){
        int n=20250303;
        queue<int>q;
        for(int i=1;i<=20250303;i++)q.push(i);
        int days=0,targer=-1;
        while(!q.empty()){
            days++;
            queue<int>next_q;
            int size=q.size();
            int count=0;
            for(int i=0;i<size;i++){
                int fruit=q.front();
                q.pop();
                if(count%3==0){
                    if(fruit==n)targer=days;
                }
                else{
                    next_q.push(fruit);
                }
                count++;
            }
            q=next_q;
        }
        cout<<days<<' '<<targer<<'\n';
    }
    int main(){
        int _=1;
        //cin>>_;
        while(_--)solve();
        return 0;
    }
    

    信息

    ID
    293
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    116
    已通过
    36
    上传者