- C++
信奥上午班【模拟练习】
- 2024-6-8 10:39:34 @
#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 条评论
-
xinao027 LV 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@
- #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