大早上起来写题有助于醒脑(其实是昨晚没睡好/kk


正题

题目链接:https://www.luogu.com.cn/problem/P2480


题目大意

给出nnn和ggg,求g∑d∣nCnd%999911659g^{\sum_{d|n}C_{n}^d}\% 999911659g∑d∣n​Cnd​%999911659


解题思路

因为999911659999911659999911659是质数,根据欧拉定理我们就有g∑d∣nCnd%999911658%999911659g^{\sum_{d|n}C_n^d\% 999911658}\% 999911659g∑d∣n​Cnd​%999911658%999911659

接下来就是要求∑d∣nCnd%999911658\sum_{d|n}C_n^d\% 999911658d∣n∑​Cnd​%999911658
显然nnn这么大师需要LucasLucasLucas定理的,但是模数不是质数,考虑拆开,有999911658=2∗3∗4679∗35617999911658=2*3*4679*35617999911658=2∗3∗4679∗35617。如果我们求出∑d∣nCnd\sum_{d|n}C_n^d∑d∣n​Cnd​在这4个模数下的值,我们可以用中国剩余定理
{x≡a1(mod2)x≡a2(mod3)x≡a3(mod4679)x≡a4(mod35617)\left\{\begin{matrix}x\equiv a_1(mod\ \ 2)\\x\equiv a_2(mod\ \ 3)\\x\equiv a_3(mod\ \ 4679)\\x\equiv a_4(mod\ \ 35617)\end{matrix}\right.⎩⎪⎪⎨⎪⎪⎧​x≡a1​(mod  2)x≡a2​(mod  3)x≡a3​(mod  4679)x≡a4​(mod  35617)​
求出xxx的解值就是∑d∣nCnd%999911658\sum_{d|n}C_n^d\% 999911658d∣n∑​Cnd​%999911658的值了


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll P=999911658,m[4]={2,3,4679,35617},N=35620;
ll n,g,ans,fac[N],a[4],M[4];
ll power(ll x,ll b,ll p){ll ans=1;while(b){if(b&1)ans=ans*x%p;x=x*x%p;b>>=1;}return ans;
}
ll C(ll n,ll m,ll p){if(n<m)return 0ll;return fac[n]*power(fac[m],p-2,p)%p*power(fac[n-m],p-2,p)%p;
}
ll Lucas(ll n,ll m,ll p){if(n<m)return 0ll;if(!n)return 1ll;return Lucas(n/p,m/p,p)*C(n%p,m%p,p)%p;
}
void Count(ll p,ll P){for(ll i=1;i<=P;i++)fac[i]=fac[i-1]*i%P;for(ll i=1;i*i<=n;i++)if(n%i==0){(a[p]+=Lucas(n,i,P))%=P;if(i*i!=n)(a[p]+=Lucas(n,n/i,P))%=P;}return;
}
void CRT(){for(ll i=0;i<4;i++){M[i]=P/m[i];(ans+=a[i]*M[i]%P*power(M[i],m[i]-2,m[i])%P)%=P;}return;
}
int main()
{scanf("%lld%lld",&n,&g);if(g%(P+1)==0){printf("0");return 0;}fac[0]=1;for(ll i=0;i<4;i++)Count(i,m[i]);CRT();printf("%lld",power(g,ans,P+1));return 0;
}

P2480-[SDOI2010]古代猪文【中国剩余定理,Lucas定理】相关推荐

  1. P2480 [SDOI2010]古代猪文(数论好题)

    P2480 [SDOI2010]古代猪文 题意: 给你n和g,求g∑d∣nCndmodpg^{\sum_{d|n}C_{n}^{d}}\bmod pg∑d∣n​Cnd​modp p=999911659 ...

  2. P2480 [SDOI2010]古代猪文

    P2480 [SDOI2010]古代猪文 题目背景 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" ...

  3. 洛谷P2480 [SDOI2010]古代猪文(卢卡斯定理+中国剩余定理)

    传送门 好吧我数学差的好像不是一点半点-- 题目求的是$G^{\sum_{d|n}C^d_n}mod\ 999911659$ 我们可以利用费马小定理$a^{k}\equiv a^{k\ mod\ (p ...

  4. BZOJ1951 [Sdoi2010]古代猪文 【费马小定理 + Lucas定理 + 中国剩余定理 + 逆元递推 + 扩展欧几里得】...

    题目 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很久以前,在山的那 ...

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

    \(\color{#0066ff}{ 题目描述 }\) 猪王国的文明源远流长,博大精深. iPig在大肥猪学校图书馆中查阅资料,得知远古时期猪文文字总个数为N.当然,一种语言如果字数很多,字典也相应会 ...

  6. BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]

    1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 2194  Solved: 919 [Submit][Statu ...

  7. 1951: [Sdoi2010]古代猪文

    http://www.lydsy.com/JudgeOnline/problem.php?id=1951 题意:求G^(C(N,N/K))%mod ( K|N) 1951: [Sdoi2010]古代猪 ...

  8. 【BZOJ1951】古代猪文(CRT,卢卡斯定理)

    [BZOJ1951]古代猪文(CRT,卢卡斯定理) 题面 BZOJ 洛谷 题解 要求什么很显然吧... \[Ans=G^{\sum_{k|N}{C_N^k}}\] 给定的模数是一个质数,要求解的东西相 ...

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

    Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...

  10. 【BZOJ 1951】 [Sdoi2010]古代猪文

    Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...

最新文章

  1. swoole 协程coroutine
  2. 【PC工具】图片压缩哪家强!tinyPNG图片压缩工具
  3. jquery获取元素宽高
  4. java - 求素数
  5. hbase原理与实践_JAVA连接HBase客户端及HBase写入数据和读取数据原理解析
  6. Nacos数据库配置
  7. stack 的优势 - 每天5分钟玩转 Docker 容器技术(113)
  8. ImportError: No module named rospy
  9. 激光雷达+imu_大疆览沃浩界(Livox Horizon)激光雷达测评
  10. ACM竞赛入门,从零开始
  11. js基础之六种继承方式
  12. Zemax OpticStudio
  13. c语言三个矩阵乘法,c语言矩阵相乘
  14. C语言练习题:据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤的数值是公斤数值的两倍。现给定某人身高,请你计算其标准体重应该是多少?
  15. microapp微前端基础使用
  16. 《PHASEN:A Phase and Harmonics-Aware Speech Enhancement Network》Pytorch代码学习
  17. win10清理C盘空间
  18. vasp 模拟退火_VASP 计算问题小结
  19. 【FPGA Verilog】如何捕获信号Posedge和Negedge?学习记录
  20. 为开发者而生的Twig(上)-Twig使用指南

热门文章

  1. java class文件 代码_java_基础——用代码编译.java文件+加载class文件
  2. 计算机bq,BQ24721部分翻译
  3. win7美化_Potplayer64位美化版,无棒子的tv推送
  4. acwing2041. 干草堆(差分数组)
  5. 问题 D: 二叉树求高度
  6. leetcode669. 修剪二叉搜索树
  7. 7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!
  8. python编程中的小问题汇总
  9. php 动态设置utf8,PHP对GB编码动态转UTF-8几种方法评测
  10. Bridge(桥接)--对象结构模式