CCF CSP 201712-2 游戏

题目链接:http://118.190.20.162/view.page?gpid=T67

问题描述
  有 n个小朋友围成一圈玩游戏,小朋友从1至 n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在 n号小朋友的顺时针方向。
  游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为 k的倍数或其末位数(即数的个位)为 k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋友时,该小朋友获胜。
  例如,当n=5, k=2时:
  1号小朋友报数1;
  2号小朋友报数2淘汰;
  3号小朋友报数3;
  4号小朋友报数4淘汰;
  5号小朋友报数5;
  1号小朋友报数6淘汰;
  3号小朋友报数7;
  5号小朋友报数8淘汰;
  3号小朋友获胜。

  给定 nk,请问最后获胜的小朋友编号为多少?
输入格式
  输入一行,包括两个整数 nk,意义如题目所述。
输出格式
  输出一行,包含一个整数,表示获胜的小朋友编号。
样例输入
5 2
样例输出
3
样例输入
7 3
样例输出
4
数据规模和约定
  对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 9。

还是按照题目模拟就行了

 1 //CCF CSP 201712-2 游戏
 2 #include <iostream>
 3 #include <algorithm>
 4 #include <cstring>
 5 using namespace std;
 6 int n,k,t,sum,st,flag;
 7 int a[1005];
 8 int b[1005];
 9 int main()
10 {
11     while(cin>>n>>k){
12         memset(b,0,sizeof(b));
13         for(int i=1;i<=n;i++){
14             a[i]=i;
15         }
16         t=1,st=1,flag=1;
17         while(flag){
18             if(t%k==0||t%10==k){
19                 b[st]=1;
20             }
21             //cout<<"stu:"<<st<<" t:"<<t<<" b[i]="<<b[st]<<endl;
22             sum=0;
23             for(int i=1;i<=n;i++){
24                 if(b[i]==0){
25                     sum++;
26                     //cout<<i<<" ";
27                 }
28             }
29             //cout<<endl;
30             if(sum==1){
31                 for(int i=1;i<=n;i++){
32                     if(b[i]==0){
33                         cout<<i<<endl;
34                         flag=0;
35                         break;
36                     }
37                 }
38             } 
39             st++;
40             while(1){
41                 if(b[st]==0||st>n) break;
42                 st++;
43             }
44             if(st>n){
45                 for(int i=1;i<=n;i++){
46                     if(b[i]==0){
47                         st=i;
48                         break;
49                     }
50                 }
51             }
52             t++;
53         }
54     }
55     return 0;
56 }

猜你喜欢

转载自www.cnblogs.com/shixinzei/p/10799349.html