题解 P2069 【松鼠吃果子】

· · 题解

看到楼下dalao用的都是什么动态数组链表,非常高深,本蒟蒻也只能贡献一个垃圾题解。

#include<bits/stdc++.h>
using namespace std;
int n,m,id[202],now=1;
int main(){
    cin>>m>>n;
    for(int i=1;i<=m;i++)
        id[i]=i;//编号先初始化
    for(int i=1;i<=n;i++){
        int jump=i*i*i%5+1;//计算跳多远
        now+=jump;
        if(now>m-i+1)now=jump+1;//如果跳出界就要从最下面跳起
        if(i!=n)//最后一次不吃,因为要输出编号
            for(int j=now+1;j<=m-i+1;j++)
                id[j-1]=id[j];//把后面的东西移上来
    }
    cout<<id[now];//输出编号
    return 0;
}