【扩展lucas定理】】的更多相关文章

J. Ceizenpok’s formula time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Dr. Ceizenp'ok from planet i1c5l became famous across the whole Universe thanks to his recent discovery — the Ceizenp…
首先说下啥是lucas定理: $\binom n m \equiv \binom {n\%P} {m\%P} \times \binom{n/P}{m/P} \pmod P$ 借助这个定理,求$\binom n m$时,若$P$较小,且$n,m$非常大时,我们就可以用这个定理要降低复杂度. 但是这个定理有一些限制,比如说要求$p$是质数,遇到一些毒瘤出题人不太好应对. 当$P$不是质数时,这时就要用到一个叫做扩展lucas定理的东西. 令$P=\prod p_i^{k_i}$. 我们发现,如果对…
扩展Lucas定理模板题(貌似这玩意也只能出模板题了吧~~本菜鸡见识鄙薄,有待指正) 原理: https://blog.csdn.net/hqddm1253679098/article/details/82897638 https://blog.csdn.net/clove_unique/article/details/54571216 感觉扩展Lucas定理和Lucas定理的复杂程度差了不止一个档次,用到了一大堆莫名其妙的函数. 另外谁能告诉我把一个很大的组合数对一个非质数取模有什么卵用 #i…
题意:n件礼物,送给m个人,每人的礼物数确定,求方案数. 解题关键:由于模数不是质数,所以由唯一分解定理, $\bmod  = p_1^{{k_1}}p_2^{{k_2}}......p_s^{{k_s}}$ 然后,分别求出每个组合数模每个$p_i^{{k_i}}$的值,这里可以用扩展lucas定理求解,(以下其实就是扩展lucas定理的简略证明) 关于$C_n^m\% {p^k}$, $C_n^m = \frac{{n!}}{{m!(n - m)!}}$, 我们以$n=19,p=3,k=2$为…
1.Lucas定理 首先给出式子:\(C_n^m\%p = C_{\lfloor\frac{n}{p}\rfloor}^{\lfloor\frac{m}{p}\rfloor} * C_{n\%p}^{m\%p}\% p\),其中p为质数. 这里给出证明--证明是我在luogu上看到的lance1ot大佬的证明,个人认为是写的很好的,在此还要做一下补充. 首先,对于质数p,可以保证\(C_p^i(1 <= i <= p-1) \equiv 0(mod\ p)\),这个比较显然,因为组合数一定是整…
http://codeforces.com/gym/100633/problem/J 其实这个解法不难学的,不需要太多的数学.但是证明的话,我可能给不了严格的证明.可以看看这篇文章 http://www.cnblogs.com/jianglangcaijin/p/3446839.html   膜拜 #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include…
[笔记] 扩展\(Lucas\)定理 \(Lucas\)定理:\(\binom{n}{m} \equiv \binom{n/P}{m/P} \binom{n \% P}{m \% P}\pmod{P}\)\((P\ is \ prime)\) Theory 那么如果\(p\)不是一个质数怎么办? 当我们需要计算\(C_n^m\mod p\),其中\(p = p_1^{q_1}\times p_2^{q_2}\times ...\times p_k^{q_k}\),我们可以求出:\(C_n^m\e…
可以先做这个题[SDOI2010]古代猪文 此算法和LUCAS定理没有半毛钱关系. [模板]扩展卢卡斯 不保证P是质数. $C_n^m=\frac{n!}{m!(n-m)!}$ 麻烦的是分母. 如果互质就有逆元了. 所以可以考虑把分子分母不互质的数单独提出来处理. 然鹅P太一般,直接处理要考虑的东西太多. 我们不妨令$p=p_1^{q_1}*p_2^{q_2}*...*p_k^{q_k}$ 对每一个$p_i^{q_i}$分别求解(不妨叫这个数为$pk$)(这样会容易很多) 即求ai满足:$\fr…
(1)Lucas定理:p为素数,则有: (2)证明: n=(ak...a2,a1,a0)p = (ak...a2,a1)p*p + a0 =  [n/p]*p+a0,m=[m/p]*p+b0其次,我们知道,对任意质数p有(1+x)^p=1+(x^p)(mod p) .我们只要证明这个式子:C(n,m)=C([n/p],[m/p]) * C(a0,b0)(mod p),那么就可以用归纳法证明整个定理.对于模p而言,我们有下面的式子成立: 上式左右两边的x的某项x^m(m<=n)的系数对模p同余.其…
题意概述:多组询问,给出N,K,M,要求回答C(N,K)%M,1<=N<=10^18,1<=K<=N,2<=M<=10^6 分析: 模数不为质数只能用扩展Lucas,裸题没什么好说的. emmmmmm......知识点我就不讲了吧......(主要是我现在都还没有参透博客园怎么放公式)直接丢代码!加上了一些棒棒的优化~ #include<iostream> #include<cstdio> #include<cstring> #inc…
默默敲了一个下午,终于过了, 题目传送门 扩展Lucas是什么,就是对于模数p,p不是质数,但是不大,如果是1e9这种大数,可能没办法, 对于1000000之内的数是可以轻松解决的. 题解传送门 代码完全手写,直接写了扩展的中国剩余定理(普通的不会写) 题意:给你n,m,p 求C(n,m)%p #include<cstring> #include<cmath> #include<cstdio> #include<iostream> #include<a…
题意:给定方程x1+x2+....xn=m,每个x是正整数.但是对前n1个数做了限制x1<=a1,x2<=a2...xn1<=an1,同时对第n1+1到n1+n2个数也做了限制xn1+1>=an1+1....xn1+n2>=an1+n2,输出方程解个数. 解法:首先如果对数字没有任何要求(应该是只要求是非负数)的话,答案就是C(n+m+1,m+1)原理是隔板法.但是此题有各种限制,我们想办法解决限制使得答案往无限制上面靠. 首先是解决要正整数,那么每个数字减一即可,就是m-=…
洛谷模板题面:https://www.luogu.org/problemnew/show/P4720 扩展卢卡斯被用于解决模数为合数情形下的组合数问题. 首先我们把模数mod质因数分解,解决模每个素数的幂意义下的组合数这样一个子问题,最后用crt把他们合并到一起. 那么我们现在要解决这样一个问题: \[ C(n,m) \quad mod \quad p^k \] 其中p为质数. \(p^k\)可能很大,而且性质与p不同,使用单纯的lucas解决肯定是不行了. 我们考虑把组合数拆成阶乘的形式,发现…
题意:有n件礼物,m个人,每个人分别需要w[i]件礼物,求分礼物的不同方案数 mod P 提示:设P=p1^c1 * p2^c2 * p3^c3 * … *pt ^ ct,pi为质数. 1≤n≤10^9,1≤m≤5,1≤pi^ci≤10^5. P不一定为质数 思路:经推导答案即为n!/(w[i]!),i=1..n 考虑P不是质数 将P分解为提示中所说的形式,可以发现所有pt^ct都是互质的,所以我们可以用下图的中国剩余定理合并 From http://blog.csdn.net/popoqqq/…
4830: [Hnoi2017]抛硬币 题意:A投a次硬币,B投b次硬币,a比b正面朝上次数多的方案数,模\(10^k\). \(b \le a \le b+10000 \le 10^{15}, k \le 9\) 几乎一下午和一晚上杠这道题...中间各种翻<具体数学>各种卡常 有两种做法,这里只说我认为简单的一种. 题目就是要求 \[ \sum_{i=0}^a \sum_{j=0}^b [i>j] \binom{a}{i} \binom{b}{j} \] 化一化得到 \[ \sum_{…
Lucas定理 [原文]2017-02-14 [update]2017-03-28 Lucas定理 计算组合数取模,适用于n很大p较小的时候,可以将计算简化到小于p $ \binom{n}{m} \mod p , p  is  prime$ $ n= n_k * p ^ k + n_{k-1} * p^{k-1}+ ... + n_2 * p^2 + n_1 * p + n_0 $ $ m=m_k * p ^ k +m_{k-1} * p^{k-1}+ ... +m_2 * p^2 +m_1 *…
题集链接: https://cn.vjudge.net/contest/231988 解题之前请先了解组合数取模和Lucas定理 A : FZU-2020  输出组合数C(n, m) mod p (1 <= m <= n <= 10^9, m <= 10^4, m < p < 10^9, p是素数) 由于p较大,不可以打表,直接Lucas求解 #include<iostream> using namespace std; typedef long long…
1.当n,m都很小的时候可以利用杨辉三角直接求. C(n,m)=C(n-1,m)+C(n-1,m-1): 2.n和m较大,但是p为素数的时候 Lucas定理是用来求 c(n,m) mod p,p为素数的值. C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p 也就是Lucas(n,m)%p=Lucas(n/p,m/p)*C(n%p,m%p)%p 求上式的时候,Lucas递归出口为m=0时返回1 求C(n%p, m%p)%p的时候,此处写成C(n, m)%p(p是素数,n和m均小于p…
传送门 [题意]: 求C(n,k)%m,n<=108,k<=n,m<=106 [思路]: 扩展lucas定理+中国剩余定理    #include<cstdio> using namespace std; typedef long long ll; ll n,m,MOD,ans; ll fpow(ll a,ll p,ll mod){ ll res=; ,a=a*a%mod) ) res=res*a%mod; return res; } void exgcd(ll a,ll b…
[国家集训队]礼物(扩展Lucas定理) 传送门可以直接戳标题 172.40.23.20 24 .1 答案就是一个式子: \[ {n\choose \Sigma_{i=1}^m w}\times\prod_{i=1}^m {\Sigma_{j=1}^m w_j-\Sigma_{j=1}^{j< i}w_j\choose w_i} \] 解释一下这个式子怎么来的... 先从所有的礼物里面选出\(\Sigma w\)出来 每个人依次选,选择的方案就是从剩下的礼物中挑出\(w_i\)个 直接扩展Luc…
引子 求 \[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} \] 就可以用中国剩余定理合并答案了.那么此时我们要求的…
Lucas定理 不会证明... 若\(p\)为质数 则\(C(n, m)\equiv C(n/p, m/p)*C(n\%p, m\%p)(mod\ p)\) 扩展 求 \(C(n,m)\) 模 \(M\) 意义下的值 令 \(M=\prod p_i^{a_i}\) 那么就只要求出模 \(p_i^{a_i}\) 的值,然后 \(CRT\) 合并即可 考虑求 \(C(n, m) \% p_i^{a_i}\) \[C(n,m)=\frac{n!}{m!(n-m)!}\] 首先可以把分子分母中 \(p_…
题目 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很久以前,在山的那边海的那边的某片风水宝地曾经存在过一个猪王国.猪王国地理位置偏僻,实施的是适应当时社会的自给自足的庄园经济,很少与外界联系,商贸活动就更少了.因此也很少有其他动物知道这样一个王国. 猪王国虽然不大,但是土地肥沃,屋舍俨然.如果一定要拿什么与之相比的话,那就只能是东晋陶渊明笔下的大家想象中的桃花源了.猪王勤政爱…
题目大概问小于等于m个的物品放到n个地方有几种方法. 即解这个n元一次方程的非负整数解的个数$x_1+x_2+x_3+\dots+x_n=y$,其中0<=y<=m. 这个方程的非负整数解个数是个经典问题,可以+1转化正整数解的个数用插板法解决:$C_{y+n-1}^{n-1}=C_{y+n-1}^y$. 而0<=y<=m,最后的结果就是—— $$\sum_{i=0}^m C_{i+n-1}^i$$ $$C_{n-1}^0+C_{n}^1+C_{n+1}^2+\dots+C_{n-1…
方便复制 快速乘/幂 时间复杂度 \(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…
从这里开始 一个有趣的问题 扩展Lucas算法 一个有趣的问题 题目大意 给定$n, m, p$,求$C_{n}^{m}$除以$p$后的余数. Subtask#1  $0\leqslant m\leqslant n \leqslant 2\times 10^{3}$ 直接杨辉恒等式$C_{n}^{m} = C_{n - 1}^{m - 1} + C_{n - 1}^{m}$递推. 时间复杂度$O(n^{2})$. Subtask#2  $0\leqslant m\leqslant n \leqs…
扩展Lucas解决的还是一个很Simple的问题: 求:$C_{n}^{m} \; mod \; p$. 其中$n,m$都会比较大,而$p$不是很大,而且不一定是质数. 扩展Lucas可以说和Lucas本身并没有什么关系,重要的是中国剩余定理.扩展Lucas这个算法中教会我们的除了算组合数,还有在模数不是质数的时候,往往可以用$CRT$来合并答案. 将原模数质因数分解:$P = \prod\limits_{i = 1}^{m} p_{i}^{k_{i}}$. 列出$m$个同余方程,第$i$个形如…
题目 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人 ,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某 个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. 输入格式 输入的第一行包含一个正整数P,表示模: 第二行包含两个整整数n和m,分别表示小E从商…
题意:M=p1*p2*...pk:求C(n,m)%M,pi小于10^5,n,m,M都是小于10^18. pi为质数 M不一定是质数 所以只能用Lucas定理求k次 C(n,m)%Pi最后会得到一个同余方程组x≡B[0](mod p[0])x≡B[1](mod p[1])x≡B[2](mod p[2])......解这个同余方程组 用中国剩余定理 Sample Input19 5 23 5 Sample Output6 # include <iostream> # include <cst…
Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很久以前,在山的那边海的那边的某片风水宝地曾经存在过一个猪王国.猪王国地理位置偏僻,实施的是适应当时社会的自给自足的庄园经济,很少与外界联系,商贸活动就更少了.因此也很少有其他动物知道这样一个王国. 猪王国虽然不大,但是土地肥沃,屋舍俨然.如果一定要拿什么与之相比的话,那就只能是东晋陶渊明笔下的大家想象中的桃…