BZOJ2142礼物——扩展卢卡斯】的更多相关文章

题目描述 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人 ,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某 个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. 输入 输入的第一行包含一个正整数P,表示模: 第二行包含两个整整数n和m,分别表示小E从商…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2142 前几天学了扩展卢卡斯定理,今天来磕模板! 这道题式子挺好推的(连我都自己推出来了) ,总之就是在 n 个里取 w[1] 个,剩下的里面再取 w[2] 个,再在剩下的里面取... 这里的模数 P 一看就不是质数啊!大组合数对合数取模,就要用到扩展卢卡斯定理了: 关于扩展卢卡斯定理,可以看这篇博客:https://blog.csdn.net/clove_unique/article/de…
好吧学长说是板子...学了之后才发现就是板子qwq 题意:求$ C_n^{w_1}*C_{n-w_1}^{w_2}*C_{n-w_1-w_2}^{w_3}*...\space mod \space P$ 当然,如果$\Sigma w_i >n$,则无解. (不会扩展卢卡斯?) #include<cstdio> #include<iostream> #define ll long long #define R register ll using namespace std; i…
2142: 礼物 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2286  Solved: 1009[Submit][Status][Discuss] Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人 ,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(…
原文链接http://www.cnblogs.com/zhouzhendong/p/8110015.html 题目传送门 - BZOJ2142 题意概括 小E购买了n件礼物,送给m个人,送给第i个人礼物数量为wi.计算出送礼物的方案数模P后的结果. 设P=p1^c1 * p2^c2 * p3^c3 * … *pt ^ ct,pi为质数. 对于100%的数据,1≤n≤10^9,1≤m≤5,1≤pi^ci≤10^5. 题解 首先,我们可以列出答案: ans=∑1<=i<=n C(n,n-∑1<…
题意: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$为…
扩展卢卡斯定理 最近光做模板了 想了解卢卡斯定理的去这里,那题也有我的题解 然而这题和卢卡斯定理并没有太大关系(雾 但是,首先要会的是中国剩余定理和exgcd 卢卡斯定理用于求\(n,m\)大,但模数\(p\)是质数,且较小的情况 但这题\(p\)并不保证是质数 所以,首先可以通过唯一分解定理给\(p\)分解乘若干质数相乘的形式:\(p=\prod p_i^{r_i}\),当然\(r\)数列是分解后每个质数的指数 则我们可以对于每个\(p_i^{r_i}\),求出\(\tbinom{n}{m}…
引子 求 \[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} \] 就可以用中国剩余定理合并答案了.那么此时我们要求的…
卢卡斯定理 求\(C_m^n~mod~p\) 设\(m={a_0}^{p_0}+{a_1}^{p_1}+\cdots+{a_k}^{p_k},n={b_0}^{p_0}+{b_1}^{p_1}+\cdots+{b_k}^{p_k}\) 则\(C_m^n\equiv\prod{C_{a_i}^{b_i}}(mod~p)\) 扩展卢卡斯定理 好像这也不是什么定理,只是一个计算方法 计算\(C_m^n~mod~p\),其中\(p={p_1}^{q_1}\times{p_2}^{q_2}\times\c…
P4720 [模板]扩展卢卡斯 题目背景 这是一道模板题. 题目描述 求 C(n,m)%P 其中 C 为组合数. 输入输出格式 输入格式: 一行三个整数 n,m,p ,含义由题所述. 输出格式: 一行一个整数,表示答案. 输入输出样例 输入样例#1: 5 3 3 输出样例#1: 1 输入样例#2: 666 233 123456 输出样例#2: 61728 说明 1≤m≤n≤1018,2≤p≤1000000 ,不保证 p 是质数. sol:ExLucas模板 可以做P不是质数的组合数 具体方法简单…
扩展卢卡斯定理 : https://www.luogu.org/problemnew/show/P4720 卢卡斯定理:https://www.luogu.org/problemnew/show/P3807 卢卡斯模板 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N =1e5; ll n, m, p, fac[N]; void init() { int i; fac[] =; ; i…
扩展卢卡斯定理用于求如下式子(其中\(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}\)的方程,然后用中国剩余定理即可求解. 层次二:组合数模质数幂…
快速阶乘与(扩展)卢卡斯定理 \(p\)为质数时 考虑 \(n!~mod~p\) 的性质 当\(n>>p\)时,不妨将\(n!\)中的因子\(p\)提出来 \(n!\) 可以写成 \(a*p^e\) , \(a\)与\(p\)互质 如何求解\(a\)和\(e\)? 显然,\(e=n/p+n/p^2+n/p^3+--\) 因为\(1\)~\(n\)有\(n/p\)个\(p\)的倍数,贡献为\(1\),\(n/p^2\)个\(p^2\)的倍数,贡献为\(2\)-- 事实上,可以每次先将\(1\)~…
扩展卢卡斯定理 求 \(C_n^m \bmod{p}\),其中 \(C\) 为组合数. \(1≤m≤n≤10^{18},2≤p≤1000000\) ,不保证 \(p\) 是质数. Fading的题解 设 \[ p=p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k} \] 求出 \[ \left\{\begin{align*} C_n^m & \mod & {p_1^{\alpha_1}} \\ C_n^m & \mod & {…
题目传送门 求组合数的时候,如果模数p是质数,可以用卢卡斯定理解决. 但是卢卡斯定理仅仅适用于p是质数的情况. 当p不是质数的时候,我们就需要用扩展卢卡斯求解. 实际上,扩展卢卡斯=快速幂+快速乘+exgcd求逆元+质因数分解+crt合并答案+求阶乘,跟卢卡斯定理没什么关系...... 如果把模数p分解成p1^k1*p2^k2*...*px^kx的形式,那么我们可以求出c(n,m)分别模每个pi^ki的结果,再用中国剩余定理合并即可. 每个pi^ki一定是互质的,所以用朴素crt就行. 根据组合…
题目 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人 ,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某 个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. 输入格式 输入的第一行包含一个正整数P,表示模: 第二行包含两个整整数n和m,分别表示小E从商…
2142: 礼物 Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. Input 输入的第一行包含一个正整数P,表示模: 第二行包含两…
思路 扩展Lucas和Lucas定理其实没什么关系 我们要求的是这样的一个问题 \[ \left(\begin{matrix}n\\m\end{matrix}\right) mod\ P \] p不一定是素数 所以需要CRT合并 问题转化为 \[ x\equiv \left(\begin{matrix}n\\m\end{matrix}\right) (mod\ p_1^{k_1}) \\ x\equiv \left(\begin{matrix}n\\m\end{matrix}\right) (m…
题目链接 答案就是C(n,m1) * C(n-m1,m2) * C(n-m1-m2,m3)...(mod p) 使用扩展Lucas求解. 一个很简单的优化就是把pi,pi^ki次方存下来,因为每次分解p都是很慢的. 注意最后p不为1要把p再存下来!(质数) COGS 洛谷上的大神写得快到飞起啊QAQ 就这样吧 3.25 Update:预处理阶乘可以很快,别忘longlong.代码见下. //836kb 288ms #include <cmath> #include <cstdio>…
题目链接 戳我 前置知识 中国剩余定理(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}\)的值的话就可以根…
扩展Lucas定理模板题(貌似这玩意也只能出模板题了吧~~本菜鸡见识鄙薄,有待指正) 原理: https://blog.csdn.net/hqddm1253679098/article/details/82897638 https://blog.csdn.net/clove_unique/article/details/54571216 感觉扩展Lucas定理和Lucas定理的复杂程度差了不止一个档次,用到了一大堆莫名其妙的函数. 另外谁能告诉我把一个很大的组合数对一个非质数取模有什么卵用 #i…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2142 没给P的范围,但说 pi ^ ci<=1e5,一看就是扩展lucas. 学习材料:https://blog.csdn.net/clove_unique/article/details/54571216 https://www.cnblogs.com/elpsycongroo/p/7620197.html 于是打(抄)了第一份exlucas的板子.那个把 pi的倍数 和 其余部分 分开…
Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人 ,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某 个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. Input 输入的第一行包含一个正整数P,表示模: 第二行包含两个整整数n和…
题目大意: 求$C_n^m \mod p$,p不一定为质数 思路: 首先可以将$p$分解为$p1^{a1}*p2^{a2}*...*pk^{ak}$,对于这些部分可以使用$CRT$合并 对于每个$p_i^{k_i}$,阶乘是存在循环的例如$19!$与模数$9$ $1*2*4*5*7*8$与$10*11*13*14*16*17$对答案的贡献一样,因此可以快速幂 对于剩下的部分因为很少可以暴力 对于求阶乘的部分 用这种方法求出循环节和剩余部分然后继续递归即可 求$C$的时候$C_n^m \mod p…
可以先做这个题[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…
题目描述 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. 输入输出格式 输入格式: 输入的第一行包含一个正整数P,表示模: 第二行包含两个整整数n和m,分…
LINK:礼物 n个物品 m个人 每个人要分得wi 个物品 每个物品互异 分给每个人的物品不分顺序 求方案数. \(n,p\leq 1e9 m\leq 5\) 方案数 那显然是 第一个人拿了w1件物品 方案为组合数 第二个人在第一个人之后拿 由于礼物不分顺序 所以这么做是正确的. 方案数显然为乘法原理 组合数 是一个1e9的 模数也是1e9的 卢卡斯定理肯定不行. 上扩展卢卡斯 考虑质因数分解p 最后采用中国剩余定理合并即可. 这个模型出过好多遍了 一定要会写. //#include<bits/…
洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d|N}C(N,d)}(\mod999911659)\) 乍一看,指数这么大,要怎么处理好呢?上费马小定理. 平时用费马小定理求逆元用多了,\(a^{p-2}\equiv inv(a)(\mod p)\),搞得蒟蒻差点忘了它原本的样子\(a^{p-1}=1(\mod p)\),那原式的指数\(\sum…
[国家集训队]礼物(扩展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…
好吧刚开始以为扩展卢卡斯然后就往上套..结果奇奇怪怪又WA又T...后来才意识到它的因子都是质数...qwq怕不是这就是学知识学傻了.. 题意:$ G^{\Sigma_{d|n} \space C_n^d}\space mod \space 999911659$ 首先发现999911659是个质数,所以根据欧拉定理的推论有 $ G^{\Sigma_{d|n}\space C_n^d} \equiv G^{\Sigma_{d|n}\space C_n^d\space mod \space\phi(…