4 条题解

  • 0
    @ 2025-5-14 13:08:17
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,p[10086],cntd,cnt=1;
    int main(){
    	cin>>n>>m;
    	cntd=n; 
    	for(int i=1;i<=n;i++){
    		p[i]=i;
    	}//编号 
    	p[n+1]=-2;//碰到-2就重新从1开始数 
    	for(int i=1;cntd>1;i++){
    		if(p[i]==-2){
    			i=0;
    			continue;
    		}
    		if(p[i]==-1)continue;//被淘汰的跳过 
    		if(cnt%m==0){
    			p[i]=-1;
    			cntd--;//人数 
    		}//淘汰 
    		cnt++;
    	}
    	for(int i=1;i<=n;i++){
    		if(p[i]>0)cout<<p[i];
    	} 
    	return 0;
    } 
    
    

    信息

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