2 条题解

  • 0
    @ 2025-7-18 13:38:40

    模拟。 本人考试时死也过不去,后来发现忘记考虑重力了。

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int n, m, a[210];
    
    int main ()
    {
    	cin >> n >> m;
    	
    	for (int i = 1; i <= n; i++) a[i] = i;
    	int index = 1;
    
    	for (int i = 1; i <= m; i++)
    	{
    		int step = i * i * i % 5 + 1; //本步需跳step步 
    		if (index + step > n) index = 1; //如果跳出,回到最下面的果子(不会摔死吗) 
    		index += step; //向上跳step步 
    		if (index > n || i == m) break; //如果还吃不到果子或已经吃到第m颗果子了
    		for (int j = index; j < n; j++) a[j] = a[j + 1]; //吃掉后上面的果子向下移动一位 
    		n--; //果子减少1 
    	}
    	
    	cout << a[index];
    	
        return 0;
    }
    

    注:index必须定义在main()里面(oj会CE)!

    信息

    ID
    1226
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    132
    已通过
    31
    上传者