题目描述

n个人排成一圈,按顺时针方向依次编号1,2,3…n。从编号为1的人开始顺时针"一二三...."报数,报到m的人退出圈子。这样不断循环下去,圈子里的人将不断减少。最终一定会剩下一个人。试问最后剩下的人的编号。

本题的数据规模更具有挑战性,尝试更通用且高效的算法。

输入

不超过1000组数据。

每组数据一行,每行两个正整数,代表人数n (1 <= n < 231)和m(1<=m<=1000)。

输出

每组输入数据输出一行, 仅包含一个整数,代表最后剩下的人的编号。

样例输入

7 2

2 2

样例输出

7

1

解决方案

点击查看代码
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 #include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
typedef long long ll;
int main()
{
ll n,m,i;
while(scanf("%lld%lld",&n,&m)!=EOF)
{
ll r=0,x;
if(m==1)
{
cout<<n<<endl;
}
else
{
for(i=2; i<=n; i++)
{
if(r+m<i)
{
x=(i-r)/m;
if(i+x<n)
{
i+=x;
r=r+x*m;
}else
{
r=r+(n-i)*m;
i=n;
}
}
r=(r+m)%i;
}
cout<<r+1<<endl;
}
}
return 0;
}

最新文章

  1. CMAKE 配置选项
  2. Nginx配置文件说明
  3. ASP.NET MVC权限验证 封装类
  4. java笔记--适配器模式的运用
  5. windows 通过ssh连接到Linux主机
  6. 【OpenCV入门指南】第一篇 安装OpenCV
  7. 使用iphone5修剪视频的方法
  8. tornado解析http body的过程分析
  9. CSS3伪类选择器 图示
  10. 漂亮竖向菜单 有缓存 javascript
  11. rsync+inotify 实现资源服务器的同步目录下的文件变化时,备份服务器的同步目录更新,以资源服务器为准,去同步其他客户端
  12. Domain Model(领域模型) 和 EntityFramework 如何正确进行对象关系映射?
  13. linux上编译安装python2.7.5
  14. jQuery与CheckBox的值一致就选中
  15. ubuntu14.04_CUDA8.0_cudnn5.1_Tensorflow配置
  16. .NETCore 下支持分表分库、读写分离的通用 Repository
  17. Bootstrap之响应式导航栏
  18. HNUOJ 13341
  19. c++以代理的方式来实现接口化编程
  20. 管理Mysql常用指令

热门文章

  1. 基于mybatis的java代码生成存储过程
  2. linux下运行crm
  3. 虚拟 DOM 与 DOM Diff
  4. 我被冻在了 vue2 源码工具函数第一行Object.freeze()(一)
  5. ElasticSearch7.3学习(二十八)----聚合实战之电视案例
  6. Netty是什么,Netty为什么速度这么快,线程模型分析
  7. 最大流&amp;最小割&amp;费用流模版
  8. ClickHouse(01)什么是ClickHouse,ClickHouse适用于什么场景
  9. Hive参数与性能企业级调优
  10. 基于Kubernetes v1.24.0的集群搭建(一)