• 【bzoj1965】[Ahoi2005]SHUFFLE 洗牌


    x*2^m==l (mod n+1)
    x=(n/2+1)^m*l mod n+1

    #include<algorithm>
    #include<iostream>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    #include<queue>
    using namespace std;
     
    typedef long long LL;
     
    #define MOD (LL)(n+1LL)
     
    int n,m,l;
     
    LL qpow(LL a,LL b)
    {
        LL m=a,s=1LL;
        while (b)
        {
            if (b & 1)
                s=(s*m)%(n+1);
            m=(m*m)%(n+1);
           b>>=1;
        }
        return s;
    }
     
    int main()
    {
        scanf("%d%d%d",&n,&m,&l);
        printf("%lld",(qpow((LL)n/2+1,m)*l)%(n+1));
        return 0;
    }
    

      

    #include<algorithm>
    #include<iostream>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    #include<queue>
    using namespace std;
     
    typedef long long LL;
     
    #define MOD (LL)(n+1LL)
     
    int n,m,l;
     
    LL qpow(LL a,LL b)
    {
        LL m=a,s=1LL;
        while (b)
        {
            if (b & 1)
                s=(s*m)%(n+1);
            m=(m*m)%(n+1);
           b>>=1;
        }
        return s;
    }
     
    int main()
    {
        scanf("%d%d%d",&n,&m,&l);
        printf("%lld",(qpow((LL)n/2+1,m)*l)%(n+1));
        return 0;
    }
  • 相关阅读:
    三级联动
    投票系统
    增删改查
    PHP基础
    查询练习
    高级查询
    高级查询练习题
    0510课堂02三元运算符,跳转语句,循环结构
    0510课堂
    050602课堂css3旋转、过渡、动画
  • 原文地址:https://www.cnblogs.com/yangjiyuan/p/5761035.html
Copyright © 2020-2023  润新知