Luogu P2480 [SDOI2010]古代猪文 卢卡斯+组合+CRT

好吧刚开始以为扩展卢卡斯然后就往上套。。结果奇奇怪怪又WA又T。。。后来才意识到它的因子都是质数。。。qwq怕不是这就是学知识学傻了。。



题意:$ G^{\Sigma_{d|n} \space C_n^d}\space mod \space 999911659$

首先发现999911659是个质数,所以根据欧拉定理的推论有

$ G^{\Sigma_{d|n}\space C_n^d} \equiv G^{\Sigma_{d|n}\space C_n^d\space mod \space\phi(999911659)} \space mod \space 999911659$ ,而$\phi(999911659)=999911658$

对$999911658$算数基本定理分解$999911658= 2*3*4679*35617$,

所以我们用卢卡斯可以求出$ \Sigma_{d|n}\space C_n^d\space mod \space p_i$,再把他们中国剩余定理合并就好了;

#include<cstdio>
#include<iostream>
#define ll long long
#define R register ll
using namespace std;
const int mod[]={2,3,4679,35617},md=999911658,mmd=999911659;
inline int g() {
    R ret=0,fix=1; register char ch; while(!isdigit(ch=getchar())) fix=ch==‘-‘?-1:fix;
    do ret=ret*10+(ch^48); while(isdigit(ch=getchar())); return ret*fix;
}
int fac[36000];
inline ll qpow(ll a,ll b,ll p) { R ret=1; a%=p;
    for(;b;b>>=1,(a*=a)%=p) if(b&1) (ret*=a)%=p; return ret;
}
inline void exgcd(ll a,ll b,ll& x,ll& y) {
    if(!b) {x=1,y=0; return ;}
    exgcd(b,a%b,y,x),y-=a/b*x;
}
inline ll Inv(ll n,ll p) {
    R x,y; exgcd(n,p,x,y); return (x%p+p)%p;
}
inline ll C(ll n,ll m,ll p) {
    if(n<m) return 0; return fac[n]*Inv(fac[n-m],p)%p*Inv(fac[m],p)%p;
}
inline ll L(ll n,ll m,ll p) {
    if(n<m) return 0; if(!n) return 1;
    return L(n/p,m/p,p)*C(n%p,m%p,p)%p;
}
ll n,G,anss,ans[4];
signed main() { fac[0]=1;
    n=g(),G=g(); G%=md+1; if(!G) {printf("0\n"); return 0;}
    for(R i=1;i<mod[3];++i) fac[i]=(ll)fac[i-1]*i%md;
    for(R i=1;i*i<=n;++i) if(n%i==0) {
        for(R j=0;j<=3;++j) ans[j]=(ans[j]+L(n,i,mod[j]))%mod[j];
        if(i*i!=n) for(R j=0;j<=3;++j) ans[j]=(ans[j]+L(n,n/i,mod[j]))%mod[j];
    } for(R i=0;i<=3;++i) anss+=ans[i]*Inv(md/mod[i],mod[i])%md*md/mod[i]%md;
    printf("%lld\n",qpow(G,anss,mmd));
} 


2019.05.18

原文地址:https://www.cnblogs.com/Jackpei/p/10885692.html

时间: 2024-08-30 07:09:30

Luogu P2480 [SDOI2010]古代猪文 卢卡斯+组合+CRT的相关文章

luogu P2480 [SDOI2010]古代猪文

M_sea:这道题你分析完后就是一堆板子 废话 理解完题意后,我们要求的东西是\(G^s(s=\sum_{d|n} \binom{n}{d})\) 但是这个指数\(s\)算出来非常大,,, 我们可以利用费马小定理 \(a^{(p-1)}\equiv1(mod\ p)(gcd(a,p)=1)\) 由此我们可以得到\(G^s \equiv G^{s\ mod\ (p-1)}(mod\ p)\) 组合数部分可以使用\(Lucas\)定理求解 但是,本题的\(mod-1\)不是一个质数,它可以质因数分解

P2480 [SDOI2010]古代猪文

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

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

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

[BZOJ 1951][Sdoi2010]古代猪文(Lucas+CRT+费马小定理)

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

洛谷P2480 [SDOI2010]古代猪文

要求(图是盗来的QAQ) 首先用欧拉定理把幂模一下,直接就是MOD-1了 然后发现MOD-1可以分解为2,3,4679,35617,都是质数,可以直接用Lucas定理 然后用中国剩余定理合并一下即可 千万不可把MOD和MOD-1搞混了,否则调试好麻烦的 1 #include<cstdio> 2 #include<cstdlib> 3 #include<algorithm> 4 #include<cstring> 5 #include<vector>

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[

1951: [Sdoi2010]古代猪文

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

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

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

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

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