博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ1951】古代猪文(CRT,卢卡斯定理)
阅读量:5133 次
发布时间:2019-06-13

本文共 1209 字,大约阅读时间需要 4 分钟。

【BZOJ1951】古代猪文(CRT,卢卡斯定理)

题面

题解

要求什么很显然吧。。。

\[Ans=G^{\sum_{k|N}{C_N^k}}\]
给定的模数是一个质数,要求解的东西相当于是上面那坨东西的结果对于\(\varphi\)的取值。
但是\(\varphi\)不是质数,不好直接\(Lucas\)定理,把\(\varphi\)分解质因数之后,
直接\(CRT\)合并结果就好了,所以这个就是\(ex\_Lucas\)

#include
#include
using namespace std;#define ll long long#define RG register#define MAX 50000#define MOD (999911659)#define phi (999911658)inline int read(){ RG int x=0,t=1;RG char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')t=-1,ch=getchar(); while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar(); return x*t;}int fpow(int a,int b,int P){ int s=1;if(!a)return 0; while(b){if(b&1)s=1ll*s*a%P;a=1ll*a*a%P;b>>=1;} return s;}int pri[5]={0,2,3,4679,35617},tot=4;int jc[5][MAX],jv[5][MAX],N,G,ans;void pre(int P){ jc[P][0]=1; for(int i=1;i<=pri[P];++i)jc[P][i]=1ll*jc[P][i-1]*i%pri[P]; jv[P][pri[P]-1]=fpow(jc[P][pri[P]-1],pri[P]-2,pri[P]); for(int i=pri[P]-2;~i;--i)jv[P][i]=1ll*jv[P][i+1]*(i+1)%pri[P];}int C(int n,int m,int P){return 1ll*jc[P][n]*jv[P][m]%pri[P]*jv[P][n-m]%pri[P];}int Lucas(int n,int m,int P){ if(m>n)return 0;if(!m)return 1; if(n

转载于:https://www.cnblogs.com/cjyyb/p/9316332.html

你可能感兴趣的文章
【PHP】在目标字符串指定位置插入字符串
查看>>
【JS】jQuery设置定时器,访问服务器(PHP示例)配合微信、支付宝原生支付,跳转web网页...
查看>>
实验四2
查看>>
VS2012+Win7网站发布详细步骤
查看>>
Android现学现用第十一天
查看>>
Bin Packing 装箱问题——NPH问题的暴力枚举 状压DP
查看>>
多路复用
查看>>
python 列表
查看>>
Python数据可视化之Pygal(雷达图)
查看>>
当前主流读取Excel技术对比
查看>>
js-格式化数字保留两位小数-带千分符
查看>>
【Java】forward & redirect 的差异
查看>>
Java学习笔记--字符串和文件IO
查看>>
【BZOJ1951】古代猪文(CRT,卢卡斯定理)
查看>>
poj 2823 线段树
查看>>
转 Silverlight开发历程—(画刷与着色之线性渐变画刷)
查看>>
SQL语法(3)
查看>>
在js在添版本号
查看>>
Maximum Gap
查看>>
sublime3
查看>>