zoukankan      html  css  js  c++  java
  • k.第k人

    k: 第k人

    Time Limit: 1 Sec  Memory Limit: 128 MB

    Description

     TT在跟朋友一起做游戏,

    游戏规则:n个小朋友(从1开始编号)手拉手,从第一个小朋友开始报数,喊出k的小朋友从圈中出去,然后下个小朋友从1开始报数。

    当圈中只剩下一个小朋友的时候结束。TT想知道谁会胜出。

    Input

     T(T组,T<=10)

    T行,每行两个个数字n,k代表当前有n个小朋友(n<=1000)k如上述(k<=1e5)

    Output

     对每组输出胜出者的编号

    Sample Input

    1
    5 2
    

    Sample Output

    3

    HINT

     第一个出去的是2号:1 3 4 5


    第二个出去的是4号,1 3 5


    第三个出去的是1号,3 5


    第四个出去的是5号,3


    3胜出

      直接O(n^2)暴力即可,注意k比较大每次对剩余人数取余。

     1 #include<cstdio>
     2 #include<cstring>
     3 using namespace std;
     4 bool bo[1005];
     5 int main(){
     6     int T,n,k;
     7     scanf("%d",&T);
     8     while(T--){
     9         memset(bo,0,sizeof bo);
    10         scanf("%d%d",&n,&k);
    11         k--;
    12         int now=1;
    13         for(int i=n;i>1;i--){
    14             int t=k%i,cnt=0;
    15             while(cnt<t){
    16                 now=now%n+1;
    17                 if(!bo[now])cnt++;
    18             }
    19             bo[now]=1;
    20             while(bo[now])now=now%n+1;//找到下一个起点 
    21         }
    22         printf("%d
    ",now);
    23     }
    24     return 0;
    25 }
    View Code
  • 相关阅读:
    Linux下安装mysql5.7
    springcloud alibaba-sentinel流控规则简介
    springcloud alibaba-sentinel初始化
    springcloud alibaba-sentinel下载安装和运行
    Python内置函数
    Python生成器
    Python解析式
    Python模块-----日期模块
    Python内置数据结构----字典
    Linux配置免密登录
  • 原文地址:https://www.cnblogs.com/KafuuMegumi/p/10123910.html
Copyright © 2011-2022 走看看