zoukankan      html  css  js  c++  java
  • [NOIP2013]转圈游戏

    题目链接

    emmmm2013提高组的原题。用一句话来说就是几个小朋友转圈圈爱的魔力转圈圈,一般来讲看到圈圈就是断环成链或者mod,然后这道题很明显是后者。无限制转圈根据数据的大小决定是模拟还是什么奇奇怪怪的算法。由于10k的步数,当然是快速幂。

    简单推导一下可以得到删去重复走的一圈又一圈的绝对距离为 (x+m*10K%n)%n,直接套进去。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    long long read(){
        long long res=0,f=1;
        char ch=getchar();
        while(ch<'0'||ch>'9'){
            if(ch=='-')f=-1;
            ch=getchar();
        }
        while(ch>='0'&&ch<='9'){
            res=res*10+(ch-'0');
            ch=getchar();
        }
        return res*f;
    }
    long long mod;
    long long n,m,k,x;
    long long ksm(long long d,long long z){
        d%=mod;
        if(z==0)return 1ll;
        if(z%2){
            return (ksm(d,z/2)%mod*(ksm(d,z/2)%mod*d%mod)%mod)%mod;
        }
        else return (ksm(d,z/2)%mod*ksm(d,z/2)%mod)%mod;
    }
    int main(){
    mod=read();m=read();k=read();x=read();
    cout<<(x+m*ksm(10,k)%mod)%mod;
    return 0;
    }
  • 相关阅读:
    线程与进程
    Java集合框架体系JCF
    Java异常
    抽象,接口和Object类
    Java三大特性
    面向对象
    数组
    Java 控制结构与方法
    数据类型与变量
    Java基础之入门
  • 原文地址:https://www.cnblogs.com/clockwhite/p/10583244.html
Copyright © 2011-2022 走看看