[ SDOI 2010 ] 古代猪文
\(\\\)
Description
一句话题意:
设 \(x=\sum_{d|n} C_n^d\),求 \(G^x\pmod {999911659}\) 。
从原题面大段语文中其实不难推出所求。
\(\\\)
Solution
以前一不敢碰..... 今天做做发现是个水题
显然问题在指数上,而不是整个式子。
暴力检验一下,发现模数为质数。根据费马小定理,\(a^k\equiv a^{k\pmod {p-1}}\pmod{p-1}\) 。
所以所求化为 \(\sum_{d|n}C_{n}^d\pmod{999911658}\) woc怕不是要EXCRT
后来发现这个模数很萎.....标准分解一下 \(999911659=2\times3\times4679\times35617\) 。
叫什么 square-free-number ,其实就是只为考个 \(CRT\) 强行凑了一个数罢了......
对四个质数分别用 \(Lucas\) 搞一下,然后 \(CRT\) 合并就好了。
其实最后还是被坑了一下,注意最外层快速幂的模数跟 CRT 合并的时候的 M 不同。
还要特判 \(a\ |\ p\) 的情况,因为这种情况下费马小定理不成立。
\(\\\)
Code
#include<cmath>
#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define R register
#define N 50010
#define mo 999911658ll
using namespace std;
typedef long long ll;
ll mod[5]={0,2,3,4679,35617},m[5],fac[N];
inline void init(ll p){
fac[0]=1;
for(R ll i=1;i<=p;++i) fac[i]=fac[i-1]*i%p;
}
inline ll qpow(ll x,ll t,ll p){
ll res=1;
while(t){
if(t&1) (res*=x)%=p;
(x*=x)%=p; t>>=1;
}
return res;
}
ll C(ll n,ll m,ll p){
if(m>n) return 0;
return fac[n]*qpow(fac[m],p-2,p)%p*qpow(fac[n-m],p-2,p)%p;
}
ll lucas(ll n,ll m,ll p){
if(n<m) return 0;
if(!m||!n) return 1;
return C(n%p,m%p,p)*lucas(n/p,m/p,p)%p;
}
inline ll solve(ll n,ll p){
init(p);
ll t=sqrt(n),res=0;
for(R ll i=1;i<=t;++i)
if(n%i==0){
(res+=lucas(n,i,p))%=p;
if(n/i!=i) (res+=lucas(n,n/i,p))%=p;
}
return res;
}
inline ll CRT(ll n){
ll res=0;
for(R ll i=1;i<=4;++i){
m[i]=mo/mod[i];
res=(res+m[i]*solve(n,mod[i])%mo*qpow(m[i],mod[i]-2,mod[i]))%mo;
}
return res;
}
int main(){
ll n,g;
scanf("%lld%lld",&n,&g);
if(g%(mo+1)==0){puts("0");return 0;}
printf("%lld\n",qpow(g,CRT(n),mo+1));
return 0;
}
[ SDOI 2010 ] 古代猪文的更多相关文章
- 【数学/扩展欧几里得/Lucas定理】BZOJ 1951 :[Sdoi 2010]古代猪文
Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边 ...
- BZOJ-1951 古代猪文 (组合数取模Lucas+中国剩余定理+拓展欧几里得+快速幂)
数论神题了吧算是 1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1573 Solved: 650 [Submit ...
- 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 ...
- 1951: [Sdoi2010]古代猪文
1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 2171 Solved: 904[Submit][Status] ...
- BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]
1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 2194 Solved: 919[Submit][Status] ...
- 古代猪文:数论大集合:欧拉定理,exgcd,china,逆元,Lucas定理应用
/* 古代猪文:Lucas定理+中国剩余定理 999911658=2*3*4679*35617 Lucas定理:(m,n)=(sp,tp)(r,q) %p 中国剩余定理:x=sum{si*Mi*ti} ...
- [SDOI2010]古代猪文 (欧拉,卢卡斯,中国剩余)
[SDOI2010]古代猪文 \(solution:\) 这道题感觉综合性极强,用到了许多数论中的知识: 质因子,约数,组合数 欧拉定理 卢卡斯定理 中国剩余定理 首先我们读题,发现题目需要我们枚举k ...
- 洛咕 P2480 [SDOI2010]古代猪文
洛咕 P2480 [SDOI2010]古代猪文 题目是要求\(G^{\sum_{d|n}C^d_n}\). 用费马小定理\(G^{\sum_{d|n}C^d_n\text{mod 999911658} ...
- BZOJ 1951 【SDOI2010】 古代猪文
题目链接:古代猪文 好久没写博客了,这次就先写一篇吧…… 题面好鬼……概括起来就是:给出\(N,G(\leqslant 10^9)\),求:\[G^{\sum_{d|n}\binom{n}{d}} \ ...
随机推荐
- Camera 模组
http://wenku.baidu.com/view/89d8c21014791711cc7917d5.html http://wenku.baidu.com/view/0cec54d5c1c708 ...
- Unable to find a team with the given Team ID或者Failed to code sign的问题解决
Unable to find a team with the given Team ID或者Failed to code sign的问题解决 1:问题描述(注:这种情况一般是下载并打开别人项目时) F ...
- android各种菜单使用介绍
Android菜单的有这几种: 1,OptionMenue:选项菜单 2,contextMenu:上下文菜单 3,SubMenu子菜单 其中,OptionMenue与contextMenu的区别(Op ...
- ALLOWED_HOSTS = ['*']
https://docs.djangoproject.com/en/1.10/ref/settings/#std:setting-ALLOWED_HOSTS https://stackoverflow ...
- Adding Security to an Existing Website
The procedure earlier in this article relies on using the Starter Site template as the basis for web ...
- HDU1269 迷宫城堡 —— 强连通分量
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269 迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) M ...
- YTU 2894: G--我要去内蒙古大草原
2894: G--我要去内蒙古大草原 时间限制: 1 Sec 内存限制: 128 MB 提交: 162 解决: 8 题目描述 春天到了,小明想要从烟台开车去内蒙古大草原放松一下,这两地的距离是14 ...
- javaweb项目数据库中数据乱码
javaweb项目数据库中数据乱码 first: 排查原因: 打断点,查看到底是在执行存数据库操作之前就已经乱码了,还是存数据库操作后乱码的. 前者解决方案: 在web.xml里面加上: <fi ...
- 并不对劲的noip2018
day1 road 题意 有n(\(n \leq 10^5\))个数\(a_1,a_2,...,a_n\)排成一排,每次可以选择一段大于零的数减一,问最少几次把所有数减为0. 题解 先想到一个简单的策 ...
- 【基于libRTMP的流媒体直播之 AAC、H264 推送】
这段时间在捣腾基于 RTMP 协议的流媒体直播框架,其间参考了众多博主的文章,剩下一些细节问题自行琢磨也算摸索出个门道,现将自己认为比较恼人的 AAC 音频帧的推送和解析.H264 码流的推送和解析以 ...