【NOIP2013】转圈游戏

Description

n个小伙伴(编号从0到n-1)围坐一圈玩游戏。按照顺时针方向给n个位置编号,从0到n-1。最初,第0号小伙伴在第0号位置,第1号小伙伴在第1号位置,……,依此类推。
游戏规则如下:每一轮第0号位置上的小伙伴顺时针走到第m号位置,第1号位置小伙伴走到第m+1号位置,……,依此类推,第n−m号位置上的小伙伴走到第0号位置,第n-m+1号位置上的小伙伴走到第1号位置,……,第n-1号位置上的小伙伴顺时针走到第m-1号位置。
现在,一共进行了10^k轮,请问x号小伙伴最后走到了第几号位置。

Input

输入共1行,包含4个整数n、m、k、x,每两个整数之间用一个空格隔开。

Output

输出共1行,包含1个整数,表示10k轮后x号小伙伴所在的位置编号。

Sample Input

10 3 4 5

Sample Output

5

Hint

对于30%的数据,0<k<7;
对于80%的数据,0<k<10^7;
对于100%的数据,1<k<1,000,000,0<m<n,1≤x≤n,0<k<10^9

Source

NOIP2013,模拟,快速幂

解析

那些用模拟做这道题的神犇们,让我先%%%。

反正本蒟蒻是跑不过去的。

其实这题很好想,

移动n次后,x号一定会回到原来的位置。

所以真正有效的移动就只有10k模n次。

用快速幂跑一遍,

然后(x+m×移动次数)模n就行了。

上AC代码:

#include <bits/stdc++.h>
#define ll long long
using namespace std; int n,m,k,x; ll power(int a,int b,int p){
ll r=;
while(b){
if((b&)) r=(ll)a*r%p;
a=(ll)(a*a)%p;
b>>=;
}
return r;
} int main(){
scanf("%d%d%d%d",&n,&m,&k,&x);
ll ans=(ll)(x+m*power(,k,n))%n;
printf("%lld\n",ans);
return ;
}

题解 【NOIP2013】转圈游戏的更多相关文章

  1. [NOIP2013]转圈游戏

    题目描述 Description n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 ...

  2. noip2013转圈游戏

    题目描述 n个小伙伴(编号从 0到 n−1)围坐一圈玩游戏.按照顺时针方向给 n个位置编号,从0 到 n−1.最初,第 0号小伙伴在第 0号位置,第 1号小伙伴在第 1 号位置,……,依此类推. 游戏 ...

  3. luoguP1965 转圈游戏(NOIP2013)(快速幂)

    luogu P1965 转圈游戏 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include ...

  4. codevs3285转圈游戏

    传送门 3285 转圈游戏 2013年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Descript ...

  5. [快速幂][NOIP2012]转圈游戏

    转圈游戏 题目描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置, ...

  6. 3285 转圈游戏 2013年NOIP全国联赛提高组

    3285 转圈游戏 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond       题目描述 Description n 个小伙伴 ...

  7. 洛谷 P1965 转圈游戏

    洛谷 P1965 转圈游戏 传送门 思路 每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,--,依此类推,第n − m号位置上的小伙伴走到第 0 号 ...

  8. 1617:转圈游戏 ybt

    1617:转圈游戏 时间限制: 1000 ms         内存限制: 524288 KB提交数: 540     通过数: 326 [题目描述] nn 个小伙伴(编号从 00 到 n−1n−1 ...

  9. 洛谷P1965 转圈游戏 [2013NOIP提高组 D1T1][2017年6月计划 数论04]

    P1965 转圈游戏 题目描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 ...

随机推荐

  1. 【Python】【demo实验18】【练习实例】【统计输入字符串中,数字的个数、英文字母的个数及其他符号的个数】

    原题: 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. (本题暂时不支持中文字符及汉字) 我的代码: #!/usr/bin/python # encoding=utf-8 # -* ...

  2. 【深入浅出-JVM】(2):原码、反码、补码

    计算机中有补码表示 0 0 为正数 原码 00000000 00000000 00000000 00000000 反码 00000000 00000000 00000000 00000000 正数反码 ...

  3. c语言中int long float double 等类型所占字节及输出表示(转)

    16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 doub ...

  4. Python链表操作(实现)

    Python链表操作 在Python开发的面试中,我们经常会遇到关于链表操作的问题.链表作为一个非常经典的无序列表结构,也是一个开发工程师必须掌握的数据结构之一.在本文中,我将针对链表本身的数据结构特 ...

  5. idea jar 中没有主清单属性

    idea 中maven需要有插件 <build> <plugins> <plugin> <groupId>org.springframework.boo ...

  6. 如何编写正确且高效的 OpenResty 应用

    本文内容,由我在 OpenResty Con 2018 上的同名演讲的演讲稿整理而来. PPT 可以在 这里 下载,因为内容比较多,我就不在这里一张张贴出来了.有些内容需要结合 PPT 才能理解,请多 ...

  7. Lua的API函数

    1. 基础库 我们在整个教程中使用了各种主题下的基本库. 下表提供了相关页面的链接,并列出了本Lua教程各部分所涵盖的功能. 编号 库/方法 作用 1 错误处理 包括错误处理函数,如断言, 错误,如L ...

  8. css 字体库和动画

    @font-face { font-family:'WebSymbols'; src: url('../font/WebSymbols-Regular.otf'); } .icon{ font-fam ...

  9. 浅读vue-router源码,了解vue-router基本原理

    项目中使用vue-router的时候,会进行以下操作(可能具体不是这么写的,但是原理一样): 定义映射关系routes: 定义router实例的时候传入vue和参数{routes...}: 定义vue ...

  10. js数据类型的转换

    类型转换:就是把一种数据类型转换成另一种数据类型,在js中类型转换有以下三种情况:转数字,转字符串,转布尔值.对象转成这3种数据类型是没有意义的,对象里面可以放任意的数据类型. 在讲解类型转换之前,先 ...