传送门

好吧我数学差的好像不是一点半点……

题目求的是$G^{\sum_{d|n}C^d_n}mod\ 999911659$

我们可以利用费马小定理$a^{k}\equiv a^{k\ mod\ (p-1)}(mod\ p)$

然后组合数可以直接用Lucas搞

那么就做完啦

然而$p-1$并不是质数orz,费马小定理不能用

那么我们考虑把$p-1$分解质数,$999911658=2*3*4679*35617$

我们先用Lucas定理分别算出对这四个数取模的答案,然后得到四个线性同余方程

然后直接用中国剩余定理解出答案就好了(然而我并不会中国剩余定理orz)

 //minamoto
#include<cstdio>
#define ll long long
using namespace std;
const int mod=;
ll n,G,val,fac[],a[],b[]={,,,};
inline ll ksm(ll x,ll y,ll p){
ll res=;
while(y){
if(y&) res=res*x%p;
x=x*x%p,y>>=;
}
return res;
}
inline void init(ll p){
fac[]=;
for(int i=;i<=p;++i)
fac[i]=fac[i-]*i%p;
}
inline ll C(ll n,ll m,ll p){
if(n<m) return ;
return fac[n]*ksm(fac[m],p-,p)%p*ksm(fac[n-m],p-,p)%p;
}
ll Lucas(ll n,ll m,ll p){
if(n<m) return ;if(!n) return ;
return Lucas(n/p,m/p,p)*C(n%p,m%p,p)%p;
}
inline void CRT(){
for(int i=;i<;++i)
val=(val+a[i]*(mod/b[i])%mod*ksm(mod/b[i],b[i]-,b[i]))%mod;
}
int main(){
scanf("%lld%lld",&n,&G);
if(G%(mod+)==) return puts(""),;
for(int k=;k<;++k){
init(b[k]);
for(ll i=;i*i<=n;++i)
if(n%i==){
a[k]=(a[k]+Lucas(n,i,b[k]))%b[k];
if(i*i!=n) a[k]=(a[k]+Lucas(n,n/i,b[k]))%b[k];
}
}
CRT();
printf("%lld\n",ksm(G,val,mod+));
return ;
}

洛谷P2480 [SDOI2010]古代猪文(卢卡斯定理+中国剩余定理)的更多相关文章

  1. 洛谷 P2480 [SDOI2010]古代猪文 解题报告

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

  2. 【题解】P2480 [SDOI2010]古代猪文 - 卢卡斯定理 - 中国剩余定理

    P2480 [SDOI2010]古代猪文 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 猪王国的文明源远流长,博大精 ...

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

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

  4. 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)

    洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d| ...

  5. 洛谷 P2480 [SDOI2010]古代猪文 题解【欧拉定理】【CRT】【Lucas定理】

    数论综合题. 题目背景 题目背景与题目无关因此省略.题目链接 题目描述 猪王国的文明源远流长,博大精深. iPig 在大肥猪学校图书馆中查阅资料,得知远古时期猪文文字总个数为 \(N\).当然,一种语 ...

  6. 洛谷P2480 [SDOI2010]古代猪文

    要求(图是盗来的QAQ) 首先用欧拉定理把幂模一下,直接就是MOD-1了 然后发现MOD-1可以分解为2,3,4679,35617,都是质数,可以直接用Lucas定理 然后用中国剩余定理合并一下即可 ...

  7. 洛咕 P2480 [SDOI2010]古代猪文

    洛咕 P2480 [SDOI2010]古代猪文 题目是要求\(G^{\sum_{d|n}C^d_n}\). 用费马小定理\(G^{\sum_{d|n}C^d_n\text{mod 999911658} ...

  8. 【洛谷P2480】古代猪文

    题目大意:求 \[ G^{\sum\limits_{d|N}\binom{n}{k}} mod\ \ 999911659 \] 题解:卢卡斯定理+中国剩余定理 利用卢卡斯定理求出指数和式对各个素模数的 ...

  9. [SDOI2010] 古代猪文 (快速幂+中国剩余定理+欧拉定理+卢卡斯定理) 解题报告

    题目链接:https://www.luogu.org/problemnew/show/P2480 题目背景 “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色 ...

随机推荐

  1. Hybrid--WebView中使用Ajax

    Hybrid框架下的app,使用的Ajax.须要注意的是UIWebViewDelegate不会监測到Ajax的request.也就是再运行Ajax代码时.shouldStartLoadWithReuq ...

  2. python网络爬虫之使用scrapy爬取图片

    在前面的章节中都介绍了scrapy如何爬取网页数据,今天介绍下如何爬取图片. 下载图片需要用到ImagesPipeline这个类,首先介绍下工作流程: 1 首先需要在一个爬虫中,获取到图片的url并存 ...

  3. 最简单的Windows程序

    准备研究一下vmp 保护,从一个最简单的Windows程序入手似乎是个不错的想法. 如何才最简单呢,仅仅有一个MessageBox 调用好了. 弹出消息.退出,哦也,够简单吧. 祭出法器VC2010. ...

  4. RecyclerView 可以与CollapsingToolbarLayout一起使用

    Item  布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and ...

  5. contentprovider基础

    程序启动后,只要再manifest当中注册上,就会执行PersonProvider()创建一个对象

  6. Android源码的编译和下载【转】

    本文转载自:http://blog.csdn.net/banketree/article/details/9089827 网上介绍下载.编译Android方法一坨,读万卷书不如行万里路,以下是笔者亲身 ...

  7. codeforces B. Roma and Changing Signs 解题报告

    题目链接:http://codeforces.com/problemset/problem/262/B 题目意思:给出 n 个数和恰好一共要做的操作总数k.通过对n个数进行k次操作,每次操作可以把a[ ...

  8. [CROATIAN2009] OTOCI

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1180 [算法] 动态树维护森林连通性 时间复杂度 : O(NlogN ^ 2) [代 ...

  9. css td 溢出改为省略号

    <style> .table{ table-layout: fixed; width:100%; } .td{ width:100px; white-space: nowrap; over ...

  10. pytest用例setup和teardown

    函数式以下两种: setup_function/teardown_function  每个用例开始和结束调用一次 setup_module/teardown_module     setup_modu ...