• CCF 201712-2 游戏


    题目:

      问题描述
        有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,直到结束游戏。

    (sublime的格式分的好开,话说我有点想转github写博客了,makedown舒服很多)

    代码:

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int N = 10000;
     8     int s[10001];
     9     int n, k, i = 0, sum = 0;
    10     cin >> n >> k;
    11     int t = n;
    12     for (int q=0;q<10001;q++)
    13     {
    14         s[q]=0;
    15     } 
    16 
    17     while (t > 1)
    18     {
    19 
    20         if (s[i] == 0)
    21             sum++;
    22         else
    23         {
    24             i++;
    25             if (i >= n)
    26                 i %= n;
    27             continue;
    28         }
    29 
    30         if (sum % k == 0 || sum % 10 == k)
    31         {
    32             s[i] = 1;
    33             t--;
    34         }
    35 
    36         i++;
    37         if (i >= n)
    38             i %= n;
    39     }
    40 
    41     for (i = 0; i < n; i++)
    42     {
    43         if (s[i] == 0)
    44             cout << i + 1;
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    owlCarousel 用法心得1 -20170405
    js数组去重的四种方法
    js获取url参数值
    jq index()
    jQuery(expression,[context])
    音乐播放器的实现+显示当前时间的歌词(只显示当前时间的文本)
    iOS自动布局框架-Masonry详解
    ios -完全实现代码设置 Could not find a storyboard named 'Main' in bundle NSBundle
    Python使用MySQL数据库的
    iOS 阿里百川SDK集成注意点
  • 原文地址:https://www.cnblogs.com/blogxjc/p/11279589.html
Copyright © 2020-2023  润新知