bzoj1951 组合数取模 中国剩余定理
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int a[4]={2,3,4679,35617};
int p[36000],b[4],n,g,ans,i,j,x,y,mod=999911658;
int power(int a,int b){//快速幂 int c=1;for(;b;b>>=1){if(b&1) c=(ll)c*a%mod;a=(ll)a*a%mod;}return c;
}
void exgcd(int a,int b,int &x,int &y){if(!b) {x=1,y=0; return;}exgcd(b,a%b,x,y);int z=x; x=y; y=z-y*(a/b);
}
int inv(int a,int p){//求乘法逆元 int x,y;exgcd(a,p,x,y);return (x%p+p)%p;
}
int calc(int x,int mod){//求C(n,x)%mod的值 int ans=1,y,a,b;for(y=n;x;x/=mod,y/=mod){//lucas定理 a=x%mod,b=y%mod;ans=(ll)ans*p[b]%mod*inv(p[a],mod)%mod*inv(b<a?0:p[b-a],mod)%mod;//p[n]是n的阶乘取模mod的结果。 }return ans;
}
int main(){cin>>n>>g;g%=mod+1;if(!g) {cout<<"0\n"; return 0;}for(p[0]=i=1;i<=a[3];i++) p[i]=(ll)p[i-1]*i%mod;//预处理n的阶乘(处理到取模数就可以了) for(i=1;i*i<=n;i++)if(n%i==0){for(j=0;j<4;j++) b[j]=(b[j]+calc(i,a[j]))%a[j];if(i*i!=n)for(j=0;j<4;j++) b[j]=(b[j]+calc(n/i,a[j]))%a[j]; }for(i=0;i<4;i++){exgcd(mod/a[i],a[i],x,y);ans=(ans+(ll)x*(mod/a[i])%mod*b[i])%mod;}ans=(ans+mod)%mod,mod++;ans=power(g,ans);cout<<ans<<endl;return 0;
}
转载于:https://www.cnblogs.com/pkgunboat/p/9530517.html
bzoj1951 组合数取模 中国剩余定理相关推荐
- 组合数学 —— 组合数取模 —— 卢卡斯定理与扩展卢卡斯定理
[卢卡斯定理] 1.要求:p 是质数,m.n 很大但 p 很小 或者 n.m 不大但大于 p 2.定理内容 其中, 3.推论 当将 n 写成 p 进制:,将 m 写成 p 进制: 时,有: 4.实现 ...
- 2015 ICL, Finals, Div. 1 Ceizenpok’s formula(组合数取模,扩展lucas定理)
J. Ceizenpok's formula time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
- 数论一之定理证明——裴蜀/威尔逊/费马/扩展欧几里得/[扩展]欧拉/[扩展]中国剩余定理,欧拉函数,逆元,剩余系,筛法
打死没想到会在H老师处学懂数论 同余,整除 模运算 埃式筛法 欧拉筛法 最大公约数和最小公倍数 辗转相除法 更相减损术 裴蜀定理 威尔逊定理 费马定理 同余等价类.剩余系.缩系 欧拉函数 欧拉定理 扩 ...
- 数论 —— 线性同余方程组与中国剩余定理
[线性同余方程组] 由若干个线性同余方程构成的线性方程组. 例如: 其解法最早由我国<孙子算经>给出,因此解法称为"孙子定理",又叫"中国剩余定理" ...
- 密码学基础算法(二)中国剩余定理
随便谷歌了一个图片做首图 原图地址: http://www.siwapu.com/etagid41968b0/ 密码学基础系列: (一) 基于整数的欧几里得算法和扩展欧几里得算法 (二) 中国剩余定理 ...
- 扩展欧几里得算法、乘法逆元与中国剩余定理
文章目录 前言 定义.定理和部分证明 整除 定义 定理 定理的证明 同余 定义 同余的性质 同余的运算律 运算律的证明 扩展欧几里得算法 代码模板 算法详解 乘法逆元 求解逆元 乘法逆元的作用 中国剩 ...
- python中国剩余定理公式_《孙子算经》之物不知数题:中国剩余定理
1.<孙子算经>之"物不知数"题 今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何? 2.中国剩余定理 定义: 设 a,b,m 都是整数. 如果 m ...
- ACM数论----中国剩余定理与拓展中国剩余定理
一.问题引入: 在<孙子算经>中有这样一个问题:"今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?"这个问 ...
- 博客处女作:中国剩余定理与扩展中国剩余定理
各位好啊,这里是蒟蒻gigo_64的第一篇博客,,这里我们开始啦. 本文需要读者知晓扩展欧几里得,如果不会请点击这个大佬的链接;https://blog.csdn.net/sslz_fsy/artic ...
最新文章
- M_Map画南海水深地形图
- web怎么用代码创造表格_Python新工具:用三行代码提取PDF表格数据
- GVA gin vue从后端接口获取多选下拉框数据
- httpd2.4源码编译
- 为什么到今天还要坚持写博客(转)
- Swift快速参考手册
- 阿里投资网红茶饮“茶颜悦色” 进军茶饮市场?官方回应:爸爸的爸爸叫爷爷...
- 搜索引擎的那些事(中文分词)
- IDEA插件jrebel的配置使用
- 如何将QQ内置可爱的表情包转换为通用GIF文件
- C# GridView 排序及分页
- 黑苹果 U盘刻录工具Transmac与Etcher使用
- WIN10 下 autocad2006 及其他版本打开文件多窗口不能一个窗口的解决办法
- fastlane二开java_iOS中使用Fastlane实现自动化打包和发布
- udal导mysql_MySQL性能测试工具之mysqlslap
- 少有人走的路 - 读书笔记
- 出现ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘ 的解决方法
- 江苏省电子税务局中文点选验证码识别研究
- 上海房产税免征--积分或居住证
- TM4C123G学习记录(2)--GPIO
热门文章
- Yum卸载软件并删除依赖,下载离线rpm包,制作拷贝rpm包dockerfile
- entity、model和domain三者区别
- 不要和Java“结婚”
- Kubernetes大集群怎么管?基于监控的弹性伸缩方法
- 拿什么来衡量程序员的生产力?
- React入门指引与实战
- Android --- RecyclerView 水平滑动时,一个 item 一个 item 的滑动,禁止滑动到一半停止
- linux离线安装rjava,无法在ubuntu系统上安装rJava
- java程序设计 第2版 唐大仕_《Java程序设计(第2版)》唐大仕 源代码
- 配电基础知识汇总,99%的人都收藏了!