zoukankan      html  css  js  c++  java
  • generator 1

    generator 1

    十进制快速幂

    #include<bits/stdc++.h>
    using namespace std;
    #define Long long long
    Long C[2][2],A[2][2],B[2][2];
    Long x0,x1,a,b,n,mod,mod1;
    void mul(Long A[2][2],Long B[2][2])
    {
      
        C[0][0]=(A[0][0]*B[0][0]%mod+A[0][1]*B[1][0]%mod)%mod;
        C[0][1]=(A[0][0]*B[0][1]%mod+A[0][1]*B[1][1]%mod)%mod;
        C[1][0]=(A[1][0]*B[0][0]%mod+A[1][1]*B[1][0]%mod)%mod;
        C[1][1]=(A[1][0]*B[0][1]%mod+A[1][1]*B[1][1]%mod)%mod;
        A[0][0]=C[0][0];
        A[0][1]=C[0][1];
        A[1][0]=C[1][0];
        A[1][1]=C[1][1];
    }
    char s[2000004];
    Long qp()
    {
        Long ans[2][2]= {{1,0},{0,1}};
        Long t[2][2]= {{1,0},{0,1}};
        int n=strlen(s);
        int j=n-1;
        while(s[j]=='0'&&j>=0)
        {
            j--;
      
        }
        s[j]=s[j]-1;
        j++;
        while(j<n){s[j]='9';j++;}
        for(int i=n-1; i>=0; i--)
        {
      
            for(int j=1; j<=10; j++)
            {
                mul(t,A);
                if(j==s[i]-'0')
                {
                    mul(ans,t);
                }
            }
            A[0][0]=t[0][0];
            A[0][1]=t[0][1];
            A[1][1]=t[1][1];
            A[1][0]=t[1][0];
            t[0][0]=1;
            t[0][1]=0;
            t[1][1]=1;
            t[1][0]=0;
              
        }
        return (ans[0][0]%mod*x1%mod+ans[0][1]%mod*x0%mod)%mod;
    }
      
    int main()
    {
        scanf("%lld%lld%lld%lld",&x0,&x1,&a,&b);
        scanf("%s",s);
        scanf("%lld",&mod);
        // mod1=phi(mod);
        A[0][0]=a;
        A[0][1]=b;
        A[1][0]=1;
        A[1][1]=0;
        if(strcmp(s,"0")==0)cout<<x0<<'
    ';
        else
        {
            cout<<qp()<<'
    ';
        }
    }
  • 相关阅读:
    linux消息队列相关操作
    linux下删除3分钟之前指定文件夹下的指定类型文件
    centos6.5安装gmime-2.6
    centos6.5安装filezilla
    posix 正则库程序
    nginx正向vs反向代理
    AbstractQueuedSynchronizer 原理分析
    JAVA NIO详解
    java NIO原理及实例
    Thread类详解
  • 原文地址:https://www.cnblogs.com/liulex/p/11284493.html
Copyright © 2011-2022 走看看