2 条题解

  • 1
    @ 2024-12-24 9:54:33

    C++ :

    #include<iostream>
    #include<cstring>
    using namespace std;
    int n,k=1;
    int t,j,q=1;//j表示跳过去的存在的果子 ,b表示从起点算被吃的果子到本次能吃到的果子 ,q为起点 
    bool a[202]; 
    int shang(int);
    int shang(int x=1)//x代表在数能跨过去的存在没被吃掉的果子,函数返回值也就是q为下一步应该吃掉的是谁。 
    {
    	
        while(x!=t+1)
        {
        	q++;
            if(a[q]==1)
    		{       
              x++;
            }     
            
        }
         return q;
    }
    
    
    int main()
    {
    	int m;
    	cin>>n>>m;
    	
    	memset(a,1,sizeof(a));
    	int i=1;//i表示跳了几次 	
        while(i!=m+1)
        {
            t=i*i*i%5+1; //跳过去几个果子 
            j=shang(1);
    		if(j<=n) //判断应该吃掉的编号是多少。要是大于n,那么应该返回到最底部 
    		{ 
    		   
    		   a[j]=0;
    		   q=j+1;
    		   if(i==m)
    	        {
    	            cout<<j<<endl;
    		        break;	
    	        }
    	    }
    		else
    		{
    		  q=1;
    		  j=shang(1);
    		  a[j]=0;
    		  q=j+1;
    		    if(i==m)
    	          {
    	             cout<<j<<endl;
    		         break;	
    	          }
    	    }
    	   i++;	  
        }
        return 0;
    }
    
    
    • 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)!

      • 1

      信息

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