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=;
const int phi=mod-; typedef long long LL; int p[];
LL mul[][]; LL c[]; void pre()
{
p[]=;
p[]=;
p[]=;
p[]=;
for(int i=;i<=;++i)
{
mul[i][]=;
for(int j=;j<=;++j) mul[i][j]=mul[i][j-]*j%p[i];
}
} LL gcd(LL a,LL b)
{
return !b ? a : gcd(b,a%b);
} LL Pow(LL a,LL b,LL mod)
{
LL ans=;
for(;b;a=a*a%mod,b>>=)
if(b&) ans=ans*a%mod;
return ans;
} LL C(LL n,LL m,int i)
{
if(m>n) return ;
return mul[i][n]*Pow(mul[i][m],p[i]-,p[i])%p[i]*Pow(mul[i][n-m],p[i]-,p[i])%p[i];
} LL Lucas(LL n,LL m,int i)
{
if(m>n) return ;
LL ans=;
for(;m;n/=p[i],m/=p[i]) ans=(ans*C(n%p[i],m%p[i],i))%p[i];
return ans;
} void exgcd(LL a,LL b,LL &x,LL &y)
{
if(!b) x=,y=;
else exgcd(b,a%b,y,x),y-=a/b*x;
} int main()
{
pre();
LL n,g;
cin>>n>>g;
if(gcd(g,mod)!=)
{
printf("");
return ;
}
int m=sqrt(n);
for(int i=;i<=m;++i)
if(n%i==)
{
for(int j=;j<=;++j) c[j]=(c[j]+Lucas(n,i,j))%p[j];
if(n/i!=i)
for(int j=;j<=;++j) c[j]=(c[j]+Lucas(n,n/i,j))%p[j];
}
LL ans=;
LL Mi,mi,x,y;
for(int i=;i<=;++i)
{
Mi=phi/p[i];
mi=p[i];
exgcd(Mi,mi,x,y);
x=(x%mi+mi)%mi;
if(!x) x+=mi;
ans+=c[i]*Mi*x;
}
ans=Pow(g,ans,mod);
cout<<ans;
}
bzoj千题计划323:bzoj1951: [Sdoi2010]古代猪文(Lucas+CRT+欧拉定理)的更多相关文章
- BZOJ1951:[SDOI2010]古代猪文(Lucas,CRT)
Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边 ...
- P2480 [SDOI2010]古代猪文 Lucas+CRT合并
\(\color{#0066ff}{ 题目描述 }\) 猪王国的文明源远流长,博大精深. iPig在大肥猪学校图书馆中查阅资料,得知远古时期猪文文字总个数为N.当然,一种语言如果字数很多,字典也相应会 ...
- 【BZOJ1951】古代猪文(CRT,卢卡斯定理)
[BZOJ1951]古代猪文(CRT,卢卡斯定理) 题面 BZOJ 洛谷 题解 要求什么很显然吧... \[Ans=G^{\sum_{k|N}{C_N^k}}\] 给定的模数是一个质数,要求解的东西相 ...
- 【BZOJ1951】[Sdoi2010]古代猪文 Lucas定理+CRT
[BZOJ1951][Sdoi2010]古代猪文 Description 求$X=\sum\limits_{d|n}C_n^d$,$Ans=G^X (\mod 999911659)$. Input 有 ...
- BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]
1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 2194 Solved: 919[Submit][Status] ...
- [bzoj1951] [Sdoi2010]古代猪文 费马小定理+Lucas定理+CRT
Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...
- BZOJ1951[SDOI2010]古代猪文
Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...
- BZOJ1951 [Sdoi2010]古代猪文 【费马小定理 + Lucas定理 + 中国剩余定理 + 逆元递推 + 扩展欧几里得】
题目 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很久以前,在山的那 ...
- 洛谷 P2480 [SDOI2010]古代猪文 题解【欧拉定理】【CRT】【Lucas定理】
数论综合题. 题目背景 题目背景与题目无关因此省略.题目链接 题目描述 猪王国的文明源远流长,博大精深. iPig 在大肥猪学校图书馆中查阅资料,得知远古时期猪文文字总个数为 \(N\).当然,一种语 ...
随机推荐
- HTTPserver v3.0 版本项目
项目介绍 模拟使用 socket 多线程 / io多路复用 实现一个简单的 httpserver 和 webframe 交互的项目程序 期望可以实现简单的 以 http 协议为标准的 和浏览器 / ...
- Odoo
doc 文档 Technical Memento(pdf)是一个简短的参考,有点过时,但仍然不能错过. 目前的官方文档由研发团队积极维护. Nicolas Bessi撰写的新API指南可以提供官方文档 ...
- MT【276】正切的半角公式
若$\Delta ABC$满足:$\tan\dfrac{A}{2}\cdot\tan\dfrac{C}{2}=\dfrac{1}{3},b=\dfrac{4}{3}a$,则$\sin B=$_____ ...
- Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015
今天终于在Azure上安装成功了CRM 2015,下面简单介绍下安装过程,以及出现问题的解决: 一. 配置AD, 安装IIS 参考下面的link,里面有详细的配置步骤 http://www.c-sha ...
- urllib的实现---cookie处理
Cookie的使用 用 Python 来登录网站, 用Cookies记录登录信息, 然后就可以抓取登录之后才能看到的信息. 什么是cookies? Cookie,指某些网站为了辨别用户身份.进行ses ...
- js click 与 onclick 事件绑定,触发与解绑
click 与 onclick 1.onclick 事件会在对象被点击时发生. <input id="btn1" type="button" onclic ...
- sha256加密
sha256: 1.使用npm安装 :npm install js-sha256 2.然后在组件中methods定义方法,在调用 // sha256加密密码 setSha(){ let sha256 ...
- PHP和PHP-FPM 配置文件优化
前言:乘着这次空闲,来记录下关于PHP和PHP-FPM配置文件的优化,也方便以后自己复习. 先说PHP的 1.PHP脚本执行时间 max_execution_time = 30 该选项设定PHP程序的 ...
- pycharm 出现 "PEP:8 expected 2 blank lines ,found 0"
https://blog.csdn.net/modangtian/article/details/79687623 这句话的意思是“有两个空白行,但是没有发现.” 在声明函数的那一行的上方必须有两行的 ...
- numpy的使用方法
一.numpy快速入门 1.什么是numpy: numpy是python的一个矩阵类型,提供了大量矩阵处理的函数,非正式来说,就是一个使运算更容易,执行更迅速的库,因为它的内部运算是通过c语言而不是p ...