P1166 - 约瑟夫环
题目描述
经典的约瑟夫环问题:有$n$个人,围成一个圆圈,顺时针分别编号1,2,3...n表示,从编号为$1$的人开始进行 $1 \sim m$顺时针报数,报到$m$的那个人出列;
下一个人又从$1$开始报数,数到$m$的那个人又出列;如此重复下去,直到只剩下最后一个人,求最后剩下的人的编号。
这就是约瑟夫环问题。
输入格式
题目的输入是一行,$2$ 个空格分开的整数 $n, m$。
输出格式
要求输出一个整数,表示最后剩下的人的编号。
输入输出样例 #1
输入 #1
8 3
输出 #1
7
输入输出样例 #2
输入 #2
10 3
输出 #2
4
说明/提示
50%的数据:$1 \le n \le 300$,$1 \le m \le 300$
80%的数据:$1 \le n \le 10^4$,$1 \le m \le 10^9$
100%的数据:$1 \le n \le 10^6$,$1 \le m \le 10^9$
测试点数目
共10个测试点,每个测试点10分
时间与内存限制
每个测试点时间:1000ms(1.0s),内存:256MiB
输入输出模式
本OJ支持两种输入输出模式
1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:P1166.in,输出文件名为:P1166.out