洛谷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>
 6 #include<cmath>
 7 #define MAXN 35617+10
 8 #define ll long long
 9 #define pb push_back
10 #define ft first
11 #define sc second
12 #define mp make_pair
13 using namespace std;
14 ll c[5],m[5]={0,2,3,4679,35617};
15 ll MOD=999911659;
16 ll N,G;
17 ll inv[MAXN],finv[MAXN],fac[MAXN];
18 ll Pow(ll a,ll b,ll p){
19     ll ret=1LL;
20     while(b){
21         if(b&1){
22             (ret*=a)%=p;
23         }
24         (a*=a)%=p;
25         b>>=1;
26     }
27     return ret;
28 }
29 ll Inv(ll x,ll p){
30     return Pow(x,p-2,p);
31 }
32 ll C(ll n,ll m,ll p){
33     if(n<m)return 0LL;
34     return fac[n]*finv[m]*finv[n-m]%p;
35 }
36 ll Lucas(ll n,ll m,ll p){
37     if(!m)return 1LL;
38     if(n>=p||m>=p){
39         ll nn=n%p,mm=m%p;
40         if(nn<mm)return 0LL;
41         return Lucas(n/p,m/p,p)*C(nn,mm,p)%p;
42     }
43     else{
44         return C(n,m,p);
45     }
46 }
47 ll solve(ll p){
48     fac[0]=fac[1]=1;
49     finv[0]=finv[1]=1;
50     inv[1]=1;
51     for(int i=2;i<p;i++){
52         fac[i]=fac[i-1]*i%p;
53         inv[i]=p-(inv[p%i]*(p/i)%p);
54         finv[i]=finv[i-1]*inv[i]%p;
55     }
56     ll t=sqrt(1.0*N);
57     ll ret=0LL;
58     for(ll i=1;i<=t;i++){
59         if(N%i==0){
60             ret+=Lucas(N,i,p);
61             if(N/i!=i){
62                 ret+=Lucas(N,N/i,p);
63             }
64         }
65     }
66     return ret;
67 }
68 ll CRT(){
69     ll M=MOD-1;
70     ll ret=0LL;
71     for(int i=1;i<=4;i++){
72         ll t=Inv(M/m[i],m[i])%M*(M/m[i])%M;
73         ret+=t*c[i]%M;
74         ret%=M;
75     }
76     return ret;
77 }
78 int main()
79 {
80     scanf("%lld%lld",&N,&G);
81     if(G%MOD==0){
82         printf("0\n");
83         return 0;
84     }
85     for(int i=1;i<=4;i++) c[i]=solve(m[i]);
86     ll x=CRT();
87     ll ans=Pow(G,x,MOD);
88     printf("%lld\n",ans);
89 }

原文地址:https://www.cnblogs.com/w-h-h/p/8320601.html

时间: 2024-11-10 00:54:54

洛谷P2480 [SDOI2010]古代猪文的相关文章

P2480 [SDOI2010]古代猪文

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

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

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

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\)不是一个质数,它可以质因数分解

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(

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

【BZOJ 1951】 [Sdoi2010]古代猪文

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

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

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