转圈游戏

题目描述

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号位置。 
    现在,一共进行了 10k轮,请问x号小伙伴最后走到了第几号位置。

输入

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

输出

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

样例输入

10 3 4 5

样例输出

5

提示

【数据说明】

对于30%的数据,0 <k < 7;

对于80%的数据,0 < k < 107

对于100%的数据,1 <n < 1,000,000,0 <m <n,1 ≤ x ≤ n,0 < k < 109

 
 
解法是快速幂
ans = (x + 10 ^ k * m) mod n
代码:
 #include<cstdio>
#include<cstring> long long n, m; long long read(){
int x = , f = ;
char ch = getchar();
while (ch < '' || ch > '') {
if (ch == '-') {
f = -;
}
ch = getchar();
}
while (ch >= '' && ch <= '') {
x = x * + ch - '';
ch = getchar();
}
return x * f;
} long long pow(long long a, long long b){
long long res = ;
while (b) {
if (b & ) {
res = res * a % n;
}
a = a * a % n;
b >>= ;
}
return res % n;
} int main(){
int k, x;
n = read();
m = read();
k = read();
x = read();
long long ans = pow(10LL, k) % n;
ans = ans * m % n;
ans = (ans + x) % n;
printf("%lld", ans);
return ;
}

[快速幂][NOIP2012]转圈游戏的更多相关文章

  1. 快速幂 -- cogs1437 转圈游戏

    题目链接:http://cogs.pro:8081/cogs/problem/problem.php?pid=vJimmkqjW [题目描述] 思路:简单模拟,重点在于如何求这个轮数,由于k的范围过大 ...

  2. 快速幂——while理解&&[P1965] 转圈游戏

    快速幂--while理解 \[a^k\] 把k转成2进制 \[k=2^n*p[n]+2^(n-1)*p[n-1]+...+2^1*p[1]+2^0*p[0]\] \[a^k=a^(2^n*p[n]+2 ...

  3. NOIP 2013提高组day 1 T 1转圈游戏 快速幂

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

  4. NOIP2013T1 转圈游戏 快速幂

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

  5. noip2013提高组day1第一题-转圈游戏——快速幂典型应用

    所谓的快速幂: // 计算 m^n % k 的快速幂算法 int quickpow(int m,int n,int k) { ; ) { ) b = (b*m)%k; n = n >> ; ...

  6. 【NOIP2013】转圈游戏 快速幂

    题目大意:给你四个整数$n,m,k,x$,求$(x+m\times 10^k)%n$. 直接一个快速幂就好了,注意开$long\ long$. #include<bits/stdc++.h> ...

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

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

  8. Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)

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

  9. bzoj 3240: [Noi2013]矩阵游戏 矩阵乘法+十进制快速幂+常数优化

    3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 613  Solved: 256[Submit][Status] ...

随机推荐

  1. ant design + react,自动获取上传音频的时长(react-audio-player)

    在后台管理项目中,用户要求上传音频,并且自动获取音频时长. 第一步, import { Upload, Button, Icon } from 'antd'; 第二步,在表单中使用 Upload 组件 ...

  2. Lock和synchronized的区别和使用

    Java并发编程:Lock 今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问 ...

  3. PAT 乙级 1092 最好吃的月饼 (20 分)

    1092 最好吃的月饼 (20 分) 月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种“最好吃”的月饼,那势必在吃货界引发一场腥风血雨…… 在这里我们用数字说话,给出 ...

  4. UE4 UMG

    转自:https://www.cnblogs.com/kadaj/p/6412937.html 1.创建关卡类 1.创建C++类继承LevelScriptActor 2.打开关卡蓝图 Class Se ...

  5. Java IO浅析

    1.File类 /** * * @author lenovo * * File类 * pathSeparator * separator * * File() * boolean createNewF ...

  6. syslog-ng日志收集分析服务搭建及配置

    syslog-ng日志收集分析服务搭建及配置:1.网上下载eventlog_0.2.12.tar.gz.libol-0.3.18.tar.gz.syslog-ng_3.3.5.tar.gz三个软件: ...

  7. debug protractor

    HTAir:protractor-cucumber-typescript kbladewht$ node --inspect-brk=0.0.0.0:1229 node_modules/protrac ...

  8. NodeJS client code websocket

    var WebSocketClient = require('websocket').client; var client = new WebSocketClient(); client.on('co ...

  9. java 内部类注意点

    1.只有内部类可以是私有类,而常规类只可以具有包可见性,或公有可见性. 内部类访问权限修饰符可以为:public.protected.默认.private:(可以用哪些修饰符视具体内部类类型而定) 常 ...

  10. 获取电脑的 SN 码

    wmic bios get serialnumber