COGS 2815. 天黑请闭眼

★   输入文件:jos.in   输出文件:jos.out   简单对比
时间限制:1 s   内存限制:256 MB

【题目描述】

天亮了,请大家睁眼

昨晚是,平安夜。

处于集会中心的村民们大多数都长舒一口气,不过也有人板起了脸,但是大多数人都沉浸在死后余生的兴奋中,无人注意旁边的异动。

这时,主持人领上了一个衣衫褴褛,身上满是伤痕的野孩子。

“这是野孩子,昨晚他选定了自己的榜样,当那位榜样公民死了后,他就会在一怒下变为狼人”似乎永远保持一个语调的主持人说道。

“那快告诉我们那位榜样是谁啊”村民们纷纷地说道。

野孩子顿了顿,开口说道。

(不想看故事的人,题面在下)

“我们的村庄是一个环形,一共有n个屋子,相信各位都知道。昨晚当我来到这里时,我不认识任何人,所以我只好按照一种方法随机选择榜样。虽然我不是你们这里土生土长的人但是我也知道在你们这k是不吉利的,于是我从门牌号为1的屋子开始数,每数k个数就将数到的房屋踢出我的选择序列,于是继续数下去,直到最后只剩下一间房子,于是我就将剩下这间房子的主人选为了我的榜样”。

所有人听完后都吸了一口凉气,没人想象到野孩子会以如此直白的方式同时在好人和狼人前说出来。作为一名守卫,你知道狼人们会在极短的时间内算出这个榜样是谁,并以残忍的方式增加狼人族群的力量——杀掉Ta。你必须,比他们更快。

一句话题面

在1s内算出此死亡循环游戏的最终赢家。

【输入格式】

一行两个数n,k

【输出格式】

一行两个数n,k

【样例输入】

10 7

【样例输出】

9

【提示】

野孩子从一号屋开始数,一共有10间屋子,不吉利的数字为7,

排出的顺序依次为7 4 2 1 3 6 10 5 8 9,所以9为最后剩下的数,即榜样

村庄简介

因为杜斯特伍德是一个人类居住的村子,所以门牌号总是从1开始。

对于40%的村庄,它们属于小村镇,n<=1000,k<=1000;

对于100%的村庄,它们可是大城市了,n<=100000000,k<=100000。

【来源】

机房一cmath大佬

(Rank1 蛤蛤)

屠龙宝刀点击就送

#include <stdio.h>
 
int n,k;
int Main()
{
    freopen("jos.in","r",stdin);
    freopen("jos.out","w",stdout);
    scanf("%d%d",&n,&k);
    int r=0;
    for(int i=2;i<=n;++i) r=(r+k)%i;
    printf("%d
",r+1);
    return 0;
}
int sb=Main();
int main(int argc,char *argv[]){;}
原文地址:https://www.cnblogs.com/ruojisun/p/7608392.html