bzoj千题计划323:bzoj1951: [Sdoi2010]古代猪文(Lucas+CRT+欧拉定理)

https://www.lydsy.com/JudgeOnline/problem.php?id=1951

先欧拉降幂

然后模数质因数分解

分别计算组合数的结果,中国剩余定理合并

#include<cmath>
#include<cstdio>
#include<iostream> 

using namespace std;

const int mod=999911659;
const int phi=mod-1;

typedef long long LL;

int p[5];
LL mul[5][35618];

LL c[5];

void pre()
{
    p[1]=2;
    p[2]=3;
    p[3]=4679;
    p[4]=35617;
    for(int i=1;i<=4;++i)
    {
        mul[i][0]=1;
        for(int j=1;j<=35617;++j)  mul[i][j]=mul[i][j-1]*j%p[i];
    }
}

LL gcd(LL a,LL b)
{
    return !b ? a : gcd(b,a%b);
}

LL Pow(LL a,LL b,LL mod)
{
    LL ans=1;
    for(;b;a=a*a%mod,b>>=1)
        if(b&1) ans=ans*a%mod;
    return ans;
}

LL C(LL n,LL m,int i)
{
    if(m>n) return 0;
    return mul[i][n]*Pow(mul[i][m],p[i]-2,p[i])%p[i]*Pow(mul[i][n-m],p[i]-2,p[i])%p[i];
}

LL Lucas(LL n,LL m,int i)
{
    if(m>n) return 0;
    LL ans=1;
    for(;m;n/=p[i],m/=p[i]) ans=(ans*C(n%p[i],m%p[i],i))%p[i];
    return ans;
}

void exgcd(LL a,LL b,LL &x,LL &y)
{
    if(!b) x=1,y=0;
    else exgcd(b,a%b,y,x),y-=a/b*x;
}

int main()
{
    pre();
    LL n,g;
    cin>>n>>g;
    if(gcd(g,mod)!=1)
    {
        printf("0");
        return 0;
    }
    int m=sqrt(n);
    for(int i=1;i<=m;++i)
        if(n%i==0)
        {
            for(int j=1;j<=4;++j) c[j]=(c[j]+Lucas(n,i,j))%p[j];
            if(n/i!=i)
            for(int j=1;j<=4;++j) c[j]=(c[j]+Lucas(n,n/i,j))%p[j];
        }
    LL ans=0;
    LL Mi,mi,x,y;
    for(int i=1;i<=4;++i)
    {
        Mi=phi/p[i];
        mi=p[i];
        exgcd(Mi,mi,x,y);
        x=(x%mi+mi)%mi;
        if(!x) x+=mi;
        ans+=c[i]*Mi*x;
    }
    ans=Pow(g,ans,mod);
    cout<<ans;
}

原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/8993846.html

时间: 2024-11-05 16:28:09

bzoj千题计划323:bzoj1951: [Sdoi2010]古代猪文(Lucas+CRT+欧拉定理)的相关文章

P2480 [SDOI2010]古代猪文 Lucas+CRT合并

\(\color{#0066ff}{ 题目描述 }\) 猪王国的文明源远流长,博大精深. iPig在大肥猪学校图书馆中查阅资料,得知远古时期猪文文字总个数为N.当然,一种语言如果字数很多,字典也相应会很大.当时的猪王国国王考虑到如果修一本字典,规模有可能远远超过康熙字典,花费的猪力.物力将难以估量.故考虑再三没有进行这一项劳猪伤财之举.当然,猪王国的文字后来随着历史变迁逐渐进行了简化,去掉了一些不常用的字. iPig打算研究古时某个朝代的猪文文字.根据相关文献记载,那个朝代流传的猪文文字恰好为远

[bzoj1951] [Sdoi2010]古代猪文 费马小定理+Lucas定理+CRT

Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很久以前,在山的那边海的那边的某片风水宝地曾经存在过一个猪王国.猪王国地理位置偏僻,实施的是适应当时社会的自给自足的庄园经济,很少与外界联系,商贸活动就更少了.因此也很少有其他动物知道这样一个王国. 猪王国虽然不大,但是土地肥沃,屋舍俨然.如果一定要拿什么与之相比的话,那就只能是东晋陶渊明笔下的大家想象中的桃

bzoj千题计划304:bzoj3676: [Apio2014]回文串

https://www.lydsy.com/JudgeOnline/problem.php?id=3676 回文自动机模板题 4年前的APIO如今竟沦为模板,,,╮(╯▽╰)╭,唉 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define N 300001 char ss[N]; int s[N]; int tot=1,last; int fail[N],len

BZOJ1951 [Sdoi2010]古代猪文

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:BZOJ1951 正解:中国剩余定理+费马小定理+$Lucas$定理 解题报告: 这道题可以说是数论+组合大综合题- 题目求的是$\sum_{d|n} g^{C_n^d}$,模数$p$是质数(特判$g=p!$),根据费马小定理,我们可以把幂上的数

bzoj1951 [Sdoi2010]古代猪文 ——数论综合

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1951 题意就是要求 G^( ∑(k|n) C(n,k) ) % p,用费马小定理处理指数,卢卡斯定理处理大组合数,取模用中国剩余定理合并: 好想难写的感觉(其实也不难写?): 关于中国剩余定理,可以看这篇博客:https://www.cnblogs.com/MashiroSky/p/5918158.html 第一次写中国剩余定理合并模数,还有一点不解的地方,写在注释里. 代码如下: #in

1951: [Sdoi2010]古代猪文

1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 2171  Solved: 904[Submit][Status][Discuss] Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边海的那边的某片风水宝地曾经存在过一个猪王国.猪王国地理位置偏僻,实施的是适应当时

P2480 [SDOI2010]古代猪文

P2480 [SDOI2010]古代猪文 题目背景 “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边海的那边的某片风水宝地曾经存在过一个猪王国.猪王国地理位置偏僻,实施的是适应当时社会的自给自足的庄园经济,很少与外界联系,商贸活动就更少了.因此也很少有其他动物知道这样一个王国. 猪王国虽然不大,但是土地肥沃,屋舍俨然.如果一定要拿什么与之相比的话,那就只能是东晋陶渊明笔

【BZOJ1951】【SDOI2010】古代猪文 Lucas定理、中国剩余定理、exgcd、费马小定理

Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边海的那边的某片风水宝地曾经存在过一个猪王国.猪王国地理位置偏僻,实施的是适应当时社会的自给自足的庄园经济,很少与外界联系,商贸活动就更少了.因此也很少有其他动物知道这样一个王国. 猪王国虽然不大,但是土地肥沃,屋舍俨然.如果一定要拿什么与之相比的话,那就只能是东晋陶渊明笔下的大家想象中的桃花源了.猪

bzoj 1951 [Sdoi2010]古代猪文(数论知识)

Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边海的那边的某片风水宝地曾经存在过一个猪王国.猪王国地理位置偏僻,实施的是适应当时社会的自给自足的庄园经济,很少与外界联系,商贸活动就更少了.因此也很少有其他动物知道这样一个王国. 猪王国虽然不大,但是土地肥沃,屋舍俨然.如果一定要拿什么与之相比的话,那就只能是东晋陶渊明笔下的大家想象中的桃花源了.猪