CRT and exlucas】的更多相关文章

CRT 解同余方程,形如\(x \equiv c_i \ mod \ m_i\),我们对每个方程构造一个解满足: 对于第\(i\)个方程:\(x \equiv 1 \ mod \ m_i\),\(x \equiv \ 0 \ mod \ m_j\)\((j!=i)\) 最后\(ans=\sum{x_i*c_i}\ mod \ M\) 其中\(M=\prod m_i\) 考虑构造\(x_i\),我们解同余方程\(\frac{M}{m_i}x\equiv 1\ mod \ m_i\) 所以\(x\)…
算是一道很毒瘤的题目 考试的时候码+调了3h才搞定. op==1 显然是快速幂. op==2 有些点可以使用BSGS 不过后面的点是EXBSGS. 这个以前学过了 考试的时候还是懵逼.(当时还是看着花姐姐的题解学的 为了起到再次复习的作用 我决定 再推导一遍. 对于高次同余方程 \(a^x\equiv b(mod p)\) 朴素的BSGS利用是欧拉定理的应用解决的.此时要求(a,p)=1. 考虑解决(a,p)>1的情况 容易发现我们进行一些操作 使得他们互质就可以继续使用EXBSGS了. 当b%…
中国剩余定理 中国剩余定理,Chinese Remainder Theorem,又称孙子定理,给出了一元线性同余方程组的有解判定条件,并用构造法给出了通解的具体形式. \[ \begin{aligned} &现在有方程组:\\ &(S):\begin{cases} x\equiv a_1(mod\space m_1)\\ x\equiv a_2(mod\space m_2)\\ \space\space\space\space. \\ \space\space\space\space. \…
传送门 证明自己学过exLucas 这题计算的是本质不相同的排列数量,不难得到答案是\(\frac{n!}{\prod\limits_{i=1}^m w_i! \times (n - \sum\limits_{i=1}^m w_i)!}\) 但是模数不一定是质数,于是用exLucas计算即可. #include<bits/stdc++.h> #define int long long //This code is written by Itst using namespace std; int…
题目传送门(内部题6) 输入格式 第一行包含两个整数$T$,$MOD$:第二行包含两个整数$n$,$m$,表示$dirty$房子的位置. 输出格式 一行一个整数,表示对$MOD$取模之后的答案. 样例 样例输入: 4 10 2 2 样例输出: 数据范围与提示 对于$30\%$的数据,$T \leqslant 100$:对于另外$30\%$的数据,$MOD$为质数:对于全部数据,$1 \leqslant T \leqslant 100,000;-T \leqslant n,m \leqslant…
3129: [Sdoi2013]方程 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 582  Solved: 338[Submit][Status][Discuss] Description 给定方程    X1+X2+. +Xn=M我们对第l..N1个变量进行一些限制:Xl < = AX2 < = A2Xn1 < = An1我们对第n1 + 1..n1+n2个变量进行一些限制:Xn1+l > = An1+1Xn1+2 > =…
方便复制 快速乘/幂 时间复杂度 \(O(\log n)\). ll nmod; //快速乘 ll qmul(ll a,ll b){ ll l=a*(b>>hb)%nmod*(1ll<<hb)%nmod; ll r=a*(b&((1<<hb)-1))%nmod; return (l+r)%nmod; } //快速幂 ll qpow(ll a,ll b){ ll res=1; while(b){ if(b&1)res=res*a%nmod; a=a*a%n…
数论入门2 另一种类型的数论... GCD,LCM 定义\(gcd(a,b)\)为a和b的最大公约数,\(lcm(a,b)\)为a和b的最小公倍数,则有: 将a和b分解质因数为\(a=p1^{a1}p2^{a2}p3^{a3}...pn^{an},b=p1^{b1}p2^{b2}p3^{b3}...pn^{bn}\),那么\(gcd(a,b)=\prod_{i=1}^{n}pi^{min(ai,bi)},lcm(a,b)=\prod_{i=1}^{n}pi^{max(ai,bi)}\)(0和任何…
题目链接 戳我 前置知识 中国剩余定理(crt)或扩展中国剩余定理(excrt) 乘法逆元 组合数的基本运用 扩展欧几里得(exgcd) 说实话Lucas真的和这个没有什么太大的关系,但是Lucas还是要学学的:戳我 正文 题目是要求: \[c_n^m mod \ p\] 如果这个p是质数的话那太简单了,直接Lucas就好了,但问题是现在p不一定是一个质数. 我们令 \(P=\prod {p_i}^{c_i}\) 我们如果知道每个\(c_n^m mod \ p_i^{c_i}\)的值的话就可以根…
Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边海的那边的某片风水宝地曾经存在过一个猪王国.猪王国地理位置偏僻,实施的是适应当时社会的自给自足的庄园经济,很少与外界联系,商贸活动就更少了.因此也很少有其他动物知道这样一个王国. 猪王国虽然不大,但是土地肥沃,屋舍俨然.如果一定要拿什么与之相比的话,那就只能是东晋陶渊明笔下的大家想象中的桃花源了.猪…
OI中组合数的若干求法与CRT 只是下决心整理一下子呢~ 说明:本篇文章采用\(\binom{a}{b}\)而不是\(C_{a}^b\),以\(p\)指代模数,\(fac_i\)指代\(i!\),\(inv_i\)指代\(i\)在\(\mod p\)下的逆元,\(invf_i\)指代\(i!\)在\(\mod p\)下的逆元. 一般性的组合数求法 计算式: \[\binom{m}{n}=\frac{m!}{n!\times (m-n)!}\] 一. 杨辉三角法 \[\binom{m}{n}=\b…
扩展卢卡斯定理用于求如下式子(其中\(p\)不一定是质数): \[C_n^m\ mod\ p\] 我们将这个问题由总体到局部地分为三个层次解决. 层次一:原问题 首先对\(p\)进行质因数分解: \[p=\prod_i p_i^{k_i} \] 显然\(p_i^{k_i}\)是两两互质的,所以如果分别求出\(C_n^m\ mod\ p_i^{k_i}\),就可以构造出若干个形如\(C_n^m=a_i\ mod\ p_i^{k_i}\)的方程,然后用中国剩余定理即可求解. 层次二:组合数模质数幂…
中国剩余定理 CRT 推导 给定\(n\)个同余方程 \[ \left\{ \begin{aligned} x &\equiv a_1 \pmod{m_1} \\ x &\equiv a_2 \pmod{m_2} \\ &... \\ x &\equiv a_n \pmod{m_n} \end{aligned} \right. \] \(m_1, m_2 , ... , m_n\)两两互质 令\(M = \prod_{i=1}^{n} m_i\),求\(x \mod M\)…
Orz 因为有T的限制,所以不难搞出来一个$O(T^3)$的暴力dp 但我没试 据说有30分? 正解的话显然是组合数学啦 首先$n,m$可能为负,但这并没有影响, 我们可以都把它搞成正的 即都看作向右上方走 那么可以想到真正有效的步都是向右或者向上走的 其它两个方向都是在起反作用 设u为向上走步数,d下,l左,r右 它们满足关系: $r-l=m,u-d=n,T=u+d+l+r$ 因为有效步数为$m+n$,所以$T-m-n$必为偶数 因为要保证剩下的步上下均分,左右均分 枚举$udlr$其中一个可…
求$C_n^m mod p$,其中p不是质数且不保证p能分解为几个不同质数的乘积(也就是不能用crt合并) #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define re register #define int long long using namespace std; int n,m,p; int q_pow(int a,int b,int p){…
正解:$exLucas$+容斥 解题报告: 传送门! 在做了一定的容斥的题之后再看到这种题自然而然就应该想到容斥,,,? 没错这题确实就是容斥,和这题有点儿像 注意下的是这里的大于和小于条件处理方式不同昂$QwQ$ 对于大于等于,直接在一开始就先给它那么多就好,就先提前把$m-=\sum_{i=n_{1}+1}^{n_{1}+n_{2}} A_i$,这样就只剩小于等于的条件了 小于等于,一看最多就8个,显然就成了经典容斥套路题了鸭, 于是就枚举哪个爆了,然后可重排列搞下,容斥下,就做完了 放下推…
本来不打算写了的,,,但是感$jio$理解起来还是有点儿难度的来着,,,$so$还是瞎写点儿趴$QAQ$ $exLucas$主要有三步: 1)唯一分解$mod$并预处理$p^{k}$以内的阶乘 2)计算组合数并计算$p$的个数 3)用$crt$合并答案 $umm$大概具体港下,,,$QAQ$ 就首先拆下,$mod=\prod_{i=1}^{m} p_{i}^{c_i}$ 然后对组合数,$\binom{n}{m}=\frac{n!}{m!\cdot (n-m)!}$,对每个$p_{i}^{c_i}…
数论_CRT(中国剩余定理)& Lucas (卢卡斯定理) 前言 又是一脸懵逼的一天. 正文 按照道理来说,我们应该先做一个介绍. 中国剩余定理 中国剩余定理,Chinese Remainder Theorem,又称孙子定理,给出了一元线性同余方程组的有解判定条件,并用构造法给出了通解的具体形式. 现在有方程组:中国剩余定理指出: 扩展中国剩余定理 在一般情况下,要求任两个数互质这个条件太苛刻了,CRT派不上用场,我们需要一个更具普遍性的结论,这就是EX-CRT.虽然是称为EX-CRT,但这个定…
「ExLucas」学习笔记 前置芝士 中国剩余定理 \(CRT\) \(Lucas\) 定理 \(ExGCD\) 亿点点数学知识 给龙蝶打波广告 Lucas 定理 \(C^m_n = C^{m\% mod}_{n\% mod} \times C^{\frac{m}{mod}}_{\frac{n}{mod}}\) 适用条件 给出的数据范围较大(无法用线性求出) 模数很烂的时候(会使阶乘中出现 \(0\)) \(mod\) 必须为质数 证明 证明很恶心,略. 模板 某谷P4720 #include…
引子 求 \[C_n^m\ \text{mod}\ p \] 不保证 \(p\) 是质数. 正文 对于传统的 Lucas 定理,必须要求 \(p\) 是质数才行.若 \(p\) 不一定是质数,则需要扩展 Lucas 定理 前置知识 扩展欧几里得和中国剩余定理. 算法内容 将 \(p\) 用唯一分解定理分解,即 \[p=\prod p_i^{c_i} \] 若求出了 \[{n\choose m}\ \text{mod}\ p_i^{c_i} \] 就可以用中国剩余定理合并答案了.那么此时我们要求的…
CRT, lucas及其扩展形式 exgcd int exgcd(int a, int b, int &x, int &y) { if (b == 0) return a, x = 1, y = 0; int y = exgcd(b, a % b, x, y), t; t = x, x = y, y = t - a / b * y; } 证明: gcd的过程中, 假设我们已经求出了\(b * x + (a~\%~b) * y = gcd(a, b)\)推导到\(a*x + b*y = gc…
有一段时间没有用到AnkhSvn了,今天工作需要安装了一下.结果安装到一半就无法继续了,提示An error occurred during the installation of assembly 'Microsoft.VC90.CRT,publicKeyToken="1fc8b3b9a1e18e3b",version="9.0.30729.6161",processorArchitecture="x86",type="win32&q…
今天尝试在mac机上搭建docker registry私有仓库时,杯具的发现最新的registry出于安全考虑,强制使用ssl认证,于是又详细了解linux/mac上openssl的使用方法,接触了一堆新英文缩写,整理于下: TLS:传输层安全协议 Transport Layer Security的缩写 SSL:安全套接字层 Secure Socket Layer的缩写 TLS与SSL对于不是专业搞安全的开发人员来讲,可以认为是差不多的,这二者是并列关系,详细差异见 http://kb.cnbl…
09 年翻译的东西. 原文见:  http://www.nobugs.org/developer/win32/debug_crt_heap.html 在DeviceStudio的Debug编译模式下, crt中的堆内存分配操作----包括malloc()和free()----使用一个特殊的, 便于调试的版本, 我们称之为crt debug堆(译注: 下面简称CDH). 相比于电光火石(译注: 原文blazingly, 我想不出更确切的说法)的运行效率, 调试版本更关注对于堆错误的定位, 它通过以…
之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂.写这篇文章的目的就是为了理理清这些概念,搞清楚它们的含义及关联,还有一些基本操作. SSL SSL - Secure Sockets Layer,现在应该叫"TLS",但由于习惯问题,我们还是叫"SSL"比较多.http协议默认情况下是不加密内容的,这样就很可能在内容…
我是在虚拟机VM安装的centos 6.5 一.Linux安装 Ctrl + Alt:鼠标退出LINUX界面 安装我是参考,当然也可以根据网上教程安装:http://oldboy.blog.51cto.com/2561410/1564620   近来发现越来越多的运维小伙伴们都有最小化安装系统的洁癖,因此发布本文和大家分享下. (1)系统安装类型选择及自定义额外包组 进入如图2-28所示界面.上半部分是系统定制的不同的系统安装类型选择项,默认是"Desktop",这里我们选择"…
SSL连接作用不说,百度很多.因为最近想考虑重构一些功能,在登录这块有打算弄成HTTPS的,然后百度了,弄成了,就记录一下,以便以后万一部署的时候忘记掉. 做实验的时候,拿的我个人申请的已经备案的域名,暂定为 xxx.com,需要做SSL的是 login.xxx.com,服务器申请的是阿里云的一台ECS,弄好了IIS环境等. 一开始申请了阿里云的ca证书,里面有一个wosign免费DV证书(DV就是单验证域名所有权的,对应的还有 OV EV ,反正价格不一样,最贵的浏览器有绿色标志,反正我是没钱…
glibc与MSVC CRT 运行库是平台相关的,因为它与操作系统结合得非常紧密.C语言的运行库从某种程度上来讲是C语言的程序和不同操作系统平台之间的抽象层,它将不同的操作系统API抽象成相同的库函数.比如我们可以在不同的操作系统平台下使用fread来读取文件,而事实上fread在不同的操作系统平台下的实现是不同的,但作为运行库的使用者我们不需要关心这一点.虽然各个平台下的C语言运行库提供了很多功能,但很多时候它们毕竟有限,比如用户的权限控制.操作系统线程创建等都不是属于标准的C语言运行库.于是…
mysql 安装mysql 1. 使用root用户: su root 2. 安装 yum install mysql yum install mysql-server yum install mysql-devel(可选) 3. 修改配置信息,添加: vim /etc/my.cnf [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 lower_case_table_names=1 4. 启动mysql:se…
我连服务器用的是secure crt,每次ssh新服务器的时候都得手动设置字符编码和背景颜色,今天问了旁边的开发原来可以全局设置,以后连服务器的时候就再也不用手动设置相关属性了.步骤如下: 一开始点击Options--->Global Options--->Edit Default Settings 这里设置好你想要的属性,一般都是设置字符编码为utf8,把背景调为linux,就是背景为黑色的 接着点击Change ALL sessions保存后,以后连主机的时候就是你上一步你设置好的属性,这…