码迷,mamicode.com
首页 > 其他好文 > 详细

2019.7.10 校内测试题 转圈游戏

时间:2019-07-10 16:26:30      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:数据规模   同余   整数   模板   总结   inline   return   空格   http   

 题目

  转圈游戏(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;
}

 

 

 

 

非完美算法:  

    照搬应试策略

 

 

正解:

    照搬应试策略

 

 

 

总结:

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

 

 

 

 

 

 

技术图片

2019.7.10 校内测试题 转圈游戏

标签:数据规模   同余   整数   模板   总结   inline   return   空格   http   

原文地址:https://www.cnblogs.com/SeanOcean/p/11164621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!