• C++
  • 信奥上午班【模拟练习】

  • @ 2024-6-8 10:39:34

image image image image image image image image image

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int k,a[15],b[15],m,num=1,flag = 0,lan;
int main(){
	cin>>k;
	m = 2;
	while(1){// 找m
		lan = k;
		flag = 0;
		num = 1;
		for(int i=1;i<=k;i++)a[i]=0,b[i]=0;
		while(lan>0){
			for(int i=1;i<=k;i++){ // 红队报数
				if(a[i]==0){
					if(num == m){
						flag = 1;
						break;
					}else num++;
				}
			}
			if(flag == 1)break; // 红队报完数要问是否有红队人员淘汰
			for(int i=1;i<=k;i++){ // 蓝队报数
				if(b[i]==0){
					if(num == m){
						b[i] = 1;
						lan--;
						num = 1;
					}else num++;
				}
			}
		}
		if(lan==0&& flag==0){
			cout<<m;
			return 0;
		}
		m++;
	}
	return 0;
}

3 条评论

  • @ 2024-6-15 9:03:47

    #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int a[310],n,m,k,num; //a数组下标代表玩游戏的人的编号,值为0代表为被淘汰,1表被淘汰,初始化都为0 //n变量用来储存有多少人参加游戏 //m变量用来储存报数道几会被淘汰 int main(){ cin>>n>>m; k=n; num=1; while(k>1){ for(int i=1;i<=n;i++){ if(a[i]==0){//a[i]0代表第i个玩家还没有被淘汰掉 if(numm){ a[i]=1; k--; num=1; }else num++; } } } for(int i=1;i<=n;i++){ if(a[i]==0){ cout<<i; break; } } return 0; }

    
    ```
    
    ```
    • @ 2024-6-15 9:02:37
      
      

      #include<bits/stdc++.h>

      using namespace std; const int N=1e5+10; int a[310],n,m,k,num; //a数组下标代表玩游戏的人的编号,值为0代表为被淘汰,1表被淘汰,初始化都为0 //n变量用来储存有多少人参加游戏 //m变量用来储存报数道几会被淘汰 int main(){ cin>>n>>m; k=n; num=1; while(k>1){ for(int i=1;i<=n;i++){ if(a[i]==0){//a[i]0代表第i个玩家还没有被淘汰掉 if(numm){ a[i]=1; k--; num=1; }else num++; } } } for(int i=1;i<=n;i++){ if(a[i]==0){ cout<<i; break; } } return 0; }

      • @ 2024-6-15 8:24:49
        1. #include using namespace std; bool ar[2000001]={0};\头文件。 int main (){ int n,t;//n次操做;t是灯数。 double a;//a是实数。 cin>>n; for(int i=0;i<n;i++){ cin>>a>>t; for(int i=1;i<=t;i++){ ar[(int)(ai)]=!(ar[(int)(ai)]);//操做数。 } } for(int i=1;i<2000001;i++){ if(ar [i]==1){ cout<<i;//输出i。 } } return 0; }
        • 1