zoukankan      html  css  js  c++  java
  • 【13NOIP提高组】转圈游戏(信息学奥赛一本通 1875)(洛谷 1965)

    题目描述

    nn 个小描述

    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 号小伙伴最后走到了第几号位置。

    格式

    输入格式

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

    输出格式

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

    样例1

    样例输入1

     10 3 4 5

    样例输出1

     5

    限制

    每个测试点1s。

    提示

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

    对于 80%的数据,0 < k < 10^7; 

    对于 100%的数据,1 < n < 1,000,000,0 < m < n,1 <= x <=n,0 < k < 10^9。


     快速幂思想!!!

    由题意得最后输出的答案为(10^k*m+x)%n

    当然这个过程中还需要进行多次取余,特别注意一定要开long long类型

    代码来啦——

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int n;
     4 int m,k,x;
     5 int read()
     6 {
     7     int f=1;char ch;
     8     while((ch=getchar())<'0'||ch>'9')
     9         if(ch=='-')f=-1;
    10     int res=ch-'0';
    11     while((ch=getchar())>='0'&&ch<='9')
    12         res=res*10+ch-'0';
    13     return res*f;
    14 }
    15 void write(int x)
    16 {
    17     if(x<0)
    18     {
    19         putchar('-');
    20         x=-x;
    21     }
    22     if(x>9)write(x/10);
    23     putchar(x%10+'0');
    24 }
    25 long long ff(int x,int k)
    26 {
    27     long long res=1;
    28     while(k)
    29     {
    30         if(k%2==1)res=res*x%n;
    31         x=x*x%n;
    32         k=k/2;
    33     }
    34     return res;
    35 }
    36 
    37 int main()
    38 {
    39     n=read();m=read(); 
    40     k=read();x=read();
    41     long long xx=ff(10,k);
    42     xx=xx*m%n;
    43     xx=(xx+x)%n;
    44     printf("%lld",xx);
    45     return 0;
    46 }
  • 相关阅读:
    Verilog HDL的程序结构及其描述
    VerilogHDL概述与数字IC设计流程学习笔记
    常用算法与设计模式
    DOM笔录
    JavaScript笔录
    Windows系统版本型号MSDN版、OEM版、RTM版、VOL版区别
    Yaml学习笔录
    Linux关闭iptables以及selinux
    Centos配置163YUM源
    utf8 和 UTF-8 在使用中的区别
  • 原文地址:https://www.cnblogs.com/ljy-endl/p/11378850.html
Copyright © 2011-2022 走看看