• l.新第k人


    l: 新第k人

    Time Limit: 1 Sec  Memory Limit: 32 MB

    Description

     TT在跟朋友一起做游戏,

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

    TT特别喜欢233这个数字,他把游戏修改为第233人。即报出233的人要退出游戏。

    由于第233人太好玩了,玩的人越来越多,现在你还会知道谁会胜出吗?

    Input

     T(T组,T<=10000)

    T行,每行一个数字n代表当前有n个小朋友(n<=10000);

    Output

     对每组输出胜出者的编号

    Sample Input

    1
    5
    

    Sample Output

    5

    HINT

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


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


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


    第四个出去的是2号,5


    5胜出

       在k题的基础上,发现当k=233为定值时,答案是有规律的,设dp[n]为答案,则dp[n]=(dp[n-1]+k)%n(不知道怎么证明,如果有大佬知道证明方法欢迎在下方评论)。

     1 #include<cstdio>
     2 #include<cstring>
     3 using namespace std;
     4 int dp[10005];
     5 int main(){
     6     for(int i=1;i<10001;i++)dp[i]=(dp[i-1]+232)%i+1;
     7     int T,n;
     8     scanf("%d",&T);
     9     while(T--){
    10         scanf("%d",&n);
    11         printf("%d
    ",dp[n]);
    12     }
    13     return 0;
    14 }
    View Code
  • 相关阅读:
    朴素贝叶斯分类器实现
    Puppeteer使用
    神经网络常用名词
    Mysql binlog的基本使用和数据库恢复步骤
    webpack之代码分割及页面缓存优化
    webpack之常用loader的配置和使用
    webpack之常用plugin的配置和使用
    第11章 面向对象
    第10章 面向对象
    第9章 模块与包
  • 原文地址:https://www.cnblogs.com/KafuuMegumi/p/10123998.html
Copyright © 2020-2023  润新知