题目链接

\(Description\)

给定N,G,求$$G{\sum_{k|N}C_nk}\mod\ 999911659$$

\(Solution\)

由费马小定理,可以先对次数化简,即求\(\sum_{k|N}C_n^k\mod\ 99991168\),然后快速幂就可以解决。

可以把999911659分解成4个质因数,分别用Lucas定理求解然后用CRT合并即可。

要注意费马小定理成立的条件: a,p互质,即G!=mod.

//1380kb	156ms
#include <cmath>
#include <cstdio>
#include <algorithm>
#define P (999911658)
#define mod (999911659)
typedef long long LL;
const int Pi[5]={2,3,4679,35617}; int cnt,divi[100005],r[5],fac[40000]; int FP(LL x,int k,LL p)
{
LL t=1;
for(; k; k>>=1,x=x*x%p)
if(k&1) t=t*x%p;
return (int)t;
}
inline int inv(int v,int p){
return FP(v,p-2,p);
}
inline int C(int n,int m,int p){
if(n<m) return 0;
return fac[n]*inv(fac[m]*fac[n-m]%p,p)%p;
}
int Lucas(int n,int m,int p)
{
int res=1;
for(; m&&res; n/=p,m/=p)
(res*=C(n%p,m%p,p))%=p;
return res;
}
void Ex_gcd(int a,int b,int &x,int &y){
if(!b) x=1,y=0;
else Ex_gcd(b,a%b,y,x),y-=a/b*x;
}
int CRT()
{
int Mi,x,y,res=0;
for(int i=0; i<4; ++i)
{
Mi=P/Pi[i], Ex_gcd(Mi,Pi[i],x,y);
x=(x%Pi[i]+Pi[i])%Pi[i], (res+=1ll*r[i]*Mi%P*x%P)%=P;
}
return res;
} int main()
{
int g,n;
scanf("%d%d",&n,&g);
if(g==mod) {putchar('0'); return 0;}
for(int i=1,lim=sqrt(n); i<=lim; ++i)
if(!(n%i))
{
divi[++cnt]=i;
if(i*i!=n) divi[++cnt]=n/i;
}
fac[0]=1;
for(int k=0; k<4; ++k)
{
for(int i=1; i<=Pi[k]; ++i) fac[i]=fac[i-1]*i%Pi[k];
for(int i=1; i<=cnt; ++i)
(r[k]+=Lucas(n,divi[i],Pi[k]))%=Pi[k];
}
printf("%d",FP(g,CRT(),mod)); return 0;
}

BZOJ.1951.[SDOI2010]古代猪文(费马小定理 Lucas CRT)的更多相关文章

  1. 【bzoj1951】[Sdoi2010]古代猪文 费马小定理+Lucas定理+中国剩余定理

    题目描述 求  $g^{\sum\limits_{k|n}C_{n}^{\frac nk}}\mod 999911659$ 输入 有且仅有一行:两个数N.G,用一个空格分开. 输出 有且仅有一行:一个 ...

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

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

  3. 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 ...

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

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

  5. bzoj 1951 [Sdoi2010]古代猪文 ——数学综合

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1951 数学综合题. 费马小定理得指数可以%999911658,又发现这个数可以质因数分解.所 ...

  6. bzoj 1951 [Sdoi2010]古代猪文(数论知识)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1951 [思路] 一道优(e)秀(xin)的数论题. 首先我们要求的是(G^sigma{ ...

  7. 【刷题】BZOJ 1951 [Sdoi2010]古代猪文

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

  8. bzoj 1951: [Sdoi2010]古代猪文

    #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #defin ...

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

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

随机推荐

  1. JMS之——ActiveMQ时抛出的错误Could not connect to broker URL-使用线程池解决高并发连接

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/69046395 解决使用activemq时抛出的异常:javax.j ms.JMSE ...

  2. CF&&CC百套计划4 Codeforces Round #276 (Div. 1) A. Bits

    http://codeforces.com/contest/484/problem/A 题意: 询问[a,b]中二进制位1最多且最小的数 贪心,假设开始每一位都是1 从高位i开始枚举, 如果当前数&g ...

  3. SimpleRoundedImage-不使用mask实现圆角矩形图片

    1.一张图片是如何显示在屏幕上的 一张图片渲染到unity界面中的大致流程. 2.我们要做什么 我们要做的就是在CPU中将图片的矩形顶点数据修改成圆角矩形的顶点信息,之后Unity会将修改后的顶点数据 ...

  4. 转----MarkdownPad2.5 注册码

    经测试可用 User: Soar360@live.com 授权: GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2 ...

  5. WebViewJavascriptBridge测试示例

    android或ios:app与html5通信解决方案 下面只是前端示例代码,后端代码请参考: git https://github.com/marcuswestin/WebViewJavascrip ...

  6. alert换行警示

    alert("再次向您问好!在这里,我们向您演示" + '\n' + "如何向警告框添加折行.")

  7. 第11月第18天 RACSequence

    1. RACSequence的内部存储结构就像一个单链表,有两个指针head和tail,head指针指向了当前链表的第一个元素,tail指向head指针下一个元素:根据RACSequence是否还有内 ...

  8. CSS position:absolute浅析

    一.绝对定位的特征 绝对定位有着与浮动一样的特性,即包裹性和破坏性. 就破坏性而言,浮动仅仅破坏了元素的高度,保留了元素的宽度:而绝对定位的元素高度和宽度都没有了. 请看下面代码: <!DOCT ...

  9. MTD应用学习札记【转】

    转自:https://blog.csdn.net/lh2016rocky/article/details/70885421 今天做升级方案用到了mtd-utils中的flash_eraseall和fl ...

  10. Sqlserver中PIVOT行转列透视操作

    创建表: IF OBJECT_ID('T040_PRODUCT_SALES') IS NOT NULL DROP TABLE T040_PRODUCT_SALES create table T040_ ...