/*
古代猪文:Lucas定理+中国剩余定理
999911658=2*3*4679*35617
Lucas定理:(m,n)=(sp,tp)(r,q) %p
中国剩余定理:x=sum{si*Mi*ti}+km
先求出sum{C(d,n)}%p[i]=a[i]
*/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 999911659
#define maxn 100005
ll m[]={,,,};
ll f[][maxn],a[],d[maxn];
ll exgcd(ll a,ll b,ll &x,ll &y){
if(b==){x=,y=;return a;}
ll d=exgcd(b,a%b,x,y);
ll z=x;x=y,y=z-a/b*y;
return d;
}
ll inv(ll a,ll Mod){
ll x,y;
exgcd(a,Mod,x,y);
return (x+Mod)%Mod;
}
ll C(int i,ll n,ll k,ll p){return f[i][n]*inv(f[i][k]*f[i][n-k]%p,p)%p;}
ll lucas(int i,ll n,ll k,ll p){
int res=;
while(n&&k){
res=res*C(i,n%p,k%p,p)%p;
if(res==)return ;
n/=p,k/=p;
}
return res;
}
ll Pow(ll x,ll n,ll Mod){
ll res=;
while(n){
if(n%)res=res*x%Mod;
n>>=;x=x*x%Mod;
}
return res;
}
ll china(int n,ll a[],ll m[]){
ll M=,res=;
for(int i=;i<n;i++)M*=m[i];
for(int i=;i<n;i++){
ll w=M/m[i],x,y;
exgcd(w,m[i],x,y);
res=(res+x*w*a[i])%M;
}
return (res+M)%M;
} int main(){
ll n,g;
cin>>n>>g;
if(g==mod){puts("");return ;}
int tot=;
for(int i=;i*i<=n;i++)
if(n%i==){//求n的所有质因子
if(i*i==n)d[tot++]=i;
else d[tot++]=i,d[tot++]=n/i;
}
for(int i=;i<;i++){
f[i][]=;
for(int j=;j<m[i];j++)
f[i][j]=f[i][j-]*j%m[i];
}
for(int i=;i<tot;i++)
for(int j=;j<;j++)
a[j]=(a[j]+lucas(j,n,d[i],m[j]))%m[j];;
ll ans=china(,a,m);
cout<<Pow(g,ans,mod);
}

古代猪文:数论大集合:欧拉定理,exgcd,china,逆元,Lucas定理应用的更多相关文章

  1. BZOJ 1951: [Sdoi2010]古代猪文( 数论 )

    显然答案是G^∑C(d,N)(d|N).O(N^0.5)枚举N的约数.取模的数999911659是质数, 考虑欧拉定理a^phi(p)=1(mod p)(a与p互质), 那么a^t mod p = a ...

  2. 【bzoj1951】: [Sdoi2010]古代猪文 数论-中国剩余定理-Lucas定理

    [bzoj1951]: [Sdoi2010]古代猪文 因为999911659是个素数 欧拉定理得 然后指数上中国剩余定理 然后分别lucas定理就好了 注意G==P的时候的特判 /* http://w ...

  3. luogu 2480 古代猪文 数论合集(CRT+Lucas+qpow+逆元)

    一句话题意:G 的 sigma d|n  C(n d) 次幂  mod 999911659 (我好辣鸡呀还是不会mathjax) 分析: 1.利用欧拉定理简化模运算 ,将上方幂设为x,则x=原式mod ...

  4. bzoj 1951: [Sdoi2010]古代猪文 【中国剩余定理+欧拉定理+组合数学+卢卡斯定理】

    首先化简,题目要求的是 \[ G^{\sum_{i|n}C_{n}^{i}}\%p \] 对于乘方形式快速幂就行了,因为p是质数,所以可以用欧拉定理 \[ G^{\sum_{i|n}C_{n}^{i} ...

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

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1951 题意就是要求 G^( ∑(k|n) C(n,k) ) % p,用费马小定理处理指数,卢 ...

  6. P2480 [SDOI2010]古代猪文

    P2480 [SDOI2010]古代猪文 比较综合的一题 前置:Lucas 定理,crt 求的是: \[g^x\bmod 999911659,\text{其中}x=\sum_{d\mid n}\tbi ...

  7. BZOJ1951 古代猪文 【数论全家桶】

    BZOJ1951 古代猪文 题目链接: 题意: 计算\(g^{\sum_{k|n}(^n_k)}\%999911659\) \(n\le 10^9, g\le 10^9\) 题解: 首先,根据扩展欧拉 ...

  8. BZOJ-1951 古代猪文 (组合数取模Lucas+中国剩余定理+拓展欧几里得+快速幂)

    数论神题了吧算是 1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1573 Solved: 650 [Submit ...

  9. 1951: [Sdoi2010]古代猪文

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

随机推荐

  1. yum1

    yum 显示仓库repolist [all|emabled|disabled] 显示软件list (anaconda表示装系统的时候就装上的软件) yum list all yum list php* ...

  2. Django中模板语音变量forloop

    forloop.counter   从1开始 forloop.counter0 从0开始 forloop.revcounter  倒序(表示循环中剩余项的整型变量.) forloop.revcount ...

  3. TensorFlow学习笔记之--[tf.clip_by_global_norm,tf.clip_by_value,tf.clip_by_norm等的区别]

    以下这些函数可以用于解决梯度消失或梯度爆炸问题上. 1. tf.clip_by_value tf.clip_by_value( t, clip_value_min, clip_value_max, n ...

  4. mybatis 三剑客 generator配置 、mybatis plugin

    generator配置 1.配置pom.xml 导入mysql驱动.mybatis.mybatis-generator的依赖 <dependency> <groupId>org ...

  5. IntelliJ IDEA 导入eclipse项目包及附属包

    使用IntelliJ IDEA 工具导入eclipse项目包,并添加另外一个项目包为库文件 1.导入项目包1,如Demo1,File-->New--->Progect From Exist ...

  6. CF1139A Even Substrings

    题目地址:CF1139A Even Substrings 一个数是偶数等价于其最后一位为偶数(2/4/6/8/0) 从左往右扫一遍,如果一个数是奇数则直接跳过,偶数则加上它对答案的贡献 这里的贡献应该 ...

  7. WC2019 游记

    Day 0 早上奇迹般的六点半起床平常这时候我还没睡呢 早餐在武汉站吃了一碗28的番茄牛肉米线,结果上菜后我把所有非米线的固体(包括番茄和牛肉)全挑出去了 高二大佬:一个愿宰一个愿挨 在高铁上待了四个 ...

  8. 网络爬虫re模块的findall()函数

    findall()函数匹配所有符合规律的内容,并以列表的形式返回结果. a = '"<div>指数' \ '</div>"' word = re.finda ...

  9. 【ARTS】01_19_左耳听风-20190318~20190324

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  10. Deep Learning Tutorial - Convolutional Neural Networks(LENET)

    CNN很多概述和要点在CS231n.Neural Networks and Deep Learning中有详细阐述,这里补充Deep Learning Tutorial中的内容.本节前提是前两节的内容 ...