2 条题解

  • -1
    @ 2023-5-23 17:46:45

    队列直接搞定

    int n,m;
    queue<int>a;
    int main(){
    	IOS;
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)//防抄袭,这里实现入队操作
    	while(a.size()!=1){
    		for(int i=1;i<m;i++){
    			a.push(a.front());//将队首放入队尾
    			a.pop();//弹出队首
    		}
    		a.pop();
    	}
    	cout<<a.front();
    	return 0;
    }
    
    • -1
      @ 2022-11-17 15:23:24

      太简单了

      #include <iostream>
      using namespace std;
      bool a[1005];
      int main()
      {
      	int n,m,cnt=0,i=0,p=0;
      	cin >> n >> m;
      	while(i=i%n+1){
      //		cout << a[i] << " " << i << " " << cnt << " " << p << endl; 
      		if(cnt==n-1){
      			break;
      		}
      		if(a[i]==false){
      			p++;
      		}
      		if(p==m){
      			p=0;
      			a[i]=true;
      			cnt++;
      		}
      	}
      	for(int i = 1; i <= n; i++){
      		if(a[i]==false){
      			cout << i;
      			return 0;
      		}
      	}
      }
      
      • 1

      信息

      ID
      1028
      时间
      1000ms
      内存
      32MiB
      难度
      7
      标签
      递交数
      248
      已通过
      61
      上传者