• 2019.7.10 校内测试题 转圈游戏


     题目

      转圈游戏(circle.cpp,1s,512MB)

    【问题描述】:

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

    【输入文件】:

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

    【输出文件】:

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

    【输入输出样例】:

      circle.in
        10 3 4 5
      circle.out
        5

    【数据规模】:

      对于 30%的数据,0<k<7< span="">;
      对于 80%的数据,0<k<107< span="">;
      对于 100%的数据,1<n<1,000,000< span="">,0<m<n< span="">,1≤x<n< span="">,0<k<109< span="">。

    考试得分:  100

    主要算法 :  同余(快速幂)

    应试策略:

      快速幂模板题,略

       代码

    #include<stdio.h>
    #include<stdlib.h>
    #define LL long long 
    #define FORa(i,s,e) for(LL i=s;i<=e;i++)
    #define FORs(i,s,e) for(LL i=s;i>=e;i--)
    #define gc pa==pb&&(pb=(pa=buf)+fread(buf,1,100000,stdin),stdin)?EOF:*pa++
    #define File(name) freopen(name".in","r",stdin);freopen(name".out","w",stdout);
    
    using namespace std;
    static char buf[100000],*pa=buf,*pb=buf;
    inline LL read();
    
    LL n,m,k,x;
    LL Quickpow(LL a,LL b,LL c)
    {
        LL ret=1;
        while(b)
        {
            if(b%2) ret=ret*a%c;
            a=a*a%c,b/=2; 
        }
        return ret%c;
    }
    int main()
    {
        File("circle");
        n=read(),m=read(),k=read(),x=read();
        printf("%lld",(x+m*Quickpow(10,k,n))%n);
        return 0;
    }
    inline LL read()
    {
        register LL f(1),x(0);register char c(gc);
        while(c<'0'||c>'9') f=c=='-'?-1:1,c=gc;
        while(c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=gc;
        return f*x;
    }

    非完美算法:  

        照搬应试策略

    正解:

        照搬应试策略

    总结:

        快速幂随后会有详解,敬请等待

  • 相关阅读:
    apicloud教程
    apicloud教程3 (转载)
    apicloud教程2 (转载)
    apicloud教程1 (转载)
    API CLOUD 快捷键
    JS IIFE写法
    php事件驱动
    JQuery实践--Why JQuery
    Jquery实践--精读开篇
    python 实践--新闻聚合
  • 原文地址:https://www.cnblogs.com/SeanOcean/p/11164621.html
Copyright © 2020-2023  润新知