(上不了p站我要死了,侵权度娘背锅) Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人 ,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某 个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. Input 输入的第一行包含一个正整数…
2142: 礼物 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1313  Solved: 541[Submit][Status][Discuss] Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方…
题意: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$为…
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<…
(上不了p站我要死了,当然是游戏原画啊) Description (题面倒是很有趣,就是太长了) 题意: 一个朝代流传的猪文文字恰好为N的k分之一,其中k是N的一个正约数(可以是1和N).不过具体是哪k分之一,以及k是多少,由于历史过于久远,已经无从考证了.考虑到所有可能的k.显然当k等于某个定值时,该朝的猪文文字个数为N / k.然而从N个文字中保留下N / k个的情况也是相当多的.如果所有可能的k的所有情况数加起来为P的话,那么他研究古代文字的代价将会是G的P次方. 现在他想知道研究古代文字…
拓展Lucas定理解决大组合数取模并且模数为任意数的情况 大概的思路是把模数用唯一分解定理拆开之后然后去做 然后要解决的一个子问题是求模质数的k次方 将分母部分转化成逆元再去做就好了 这里贴一份别人的板子 #include<bits/stdc++.h> using namespace std; + ; typedef long long LL; LL Pow(LL n, LL m, LL mod) { LL ans = ; ) { ) ans = (LL)ans * n % mod; n =…
Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人 ,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某 个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. Input 输入的第一行包含一个正整数P,表示模: 第二行包含两个整整数n和…
1079 中国剩余定理 一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K % 2 = 1, K % 3 = 2, K % 5 = 3.符合条件的最小的K = 23. 收起 输入 第1行:1个数N表示后面输入的质数及模的数量.(2 <= N <= 10) 第2 - N + 1行,每行2个数P和M,中间用空格分隔,P是质数,M是K % P的结果.(2 <= P <= 100, 0 <= K < P) 输出 输出符合条件的最小的K.数据中所有K均小…
Unknown Treasure 参考链接 : https://www.cnblogs.com/linyujun/p/5199684.html 卢卡斯定理 : C(n, m) % p  =  C(n / p, m / p) * C(n%p, m%p) % p: 孙子定理 :https://blog.csdn.net/yskyskyer123/article/details/49032227 先用卢卡斯求出每个素数对大组合数的取模, 再用孙子定理将他们合并: #include<cstdio> t…
Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 127944   Accepted: 40566 Description Some people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical,…
lucas及其拓展 模板题 洛谷 P4720 本文侧向结论和代码实现, 推导请转至lucas定理及其拓展的推导 https://blog.csdn.net/yuyilahanbao/article/details/100568285 lucas定理 请阅读lucas定理 https://blog.csdn.net/yuyilahanbao/article/details/100550317 拓展lucas的结论 (nm)≡pk1−k2−k3×b1×b2−1×b3−1×cu1−u2−u3×k1!k…
求\(C_n^m \mod p\),写得太丑了qwq. 第一次写拓展Lucas竟然是在胡策的时候qwq写了两个半小时啊_(:з」∠)还写挂了一个地方qwq 当然今天胡策我也是第一次写中国剩余定理(ˇˍˇ) ↑平时懒得动手的后果→→ #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; i…
拓展Lucas是解决大组合数取模非质数(尤其是含平方因子的合数)问题的有力工具... 首先对模数质因数分解,把每个质因子单独拎出来处理答案,然后用中国剩余定理(excrt)合并 问题转化为,对于每个质因子p,求$C_{n}^{m}(mod\;p^k)$ 把$C_{n}^{m}$展开成$\frac{n!}{m!(n-m)!}$,发现上下的阶乘里,都可能有质因子p,把它们从阶乘里提取出来,额外求出$n!$里p的数量,减掉$m!$和$(n-m)!$里p的数量,再乘回答案里 剩余的部分就是$n!$,$m…
题目大意:给定一个方程$X_{1}+X_{2}+X_{3}+X_{4}+...+X_{n}=M$,$\forall X_{i}<=A_{i} (i<=n1)$ $\forall X_{i}>=A_{i} (n1<i<=n2)$在保证的合法正整数解个数n1<=8,n2<=8 一波三折的数学题,调了半天才发现我的Lucas是错的,但它竟然通过了洛谷那一道模板题的全部数据.... 后面n1~n2的部分很好处理,直接用M减掉这个部分就行了 因为是求正整数解,所以这个组合数…
终于学到这个了,本来准备省选前学来着的? 前置知识:矩阵行列式 矩阵树定理 矩阵树定理说的大概就是这样一件事:对于一张无向图 \(G\),我们记 \(D\) 为其度数矩阵,满足 \(D_{i,i}=\text{点}i\text{的度数}\),\(D_{i,j}=0(i\ne j)\),再记 \(A\) 为其邻接矩阵,满足 \(A_{i,j}=i,j\text{之间边的条数}\),如果有重边则算作多条边. 设 \(K=D-A\),那么去掉 \(K\) 第 \(k\) 行第 \(k\) 列(\(k\…
Lucas定理 在『组合数学基础』中,我们已经提出了\(Lucas\)定理,并给出了\(Lucas\)定理的证明,本文仅将简单回顾,并给出代码. \(Lucas\)定理:当\(p\)为质数时,\(C_n^m\equiv C_{n\ mod\ p}^{m\ mod\ p}*C_{n/p}^{m/p}(mod\ p)\). 在计算模域组合数时,如果模数较小,那么就可以尝试使用\(Lucas\)定理来递归求解,其时间复杂度为\(O(plog_p\min(n,m))\). \(Code:\) inlin…
扩展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 前几天学了扩展卢卡斯定理,今天来磕模板! 这道题式子挺好推的(连我都自己推出来了) ,总之就是在 n 个里取 w[1] 个,剩下的里面再取 w[2] 个,再在剩下的里面取... 这里的模数 P 一看就不是质数啊!大组合数对合数取模,就要用到扩展卢卡斯定理了: 关于扩展卢卡斯定理,可以看这篇博客:https://blog.csdn.net/clove_unique/article/de…
题目 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人 ,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某 个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. 输入格式 输入的第一行包含一个正整数P,表示模: 第二行包含两个整整数n和m,分别表示小E从商…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5446 Unknown Treasure 问题描述 On the way to the next secret treasure hiding place, the mathematician discovered a cave unknown to the map. The mathematician entered the cave because it is there. Somewhere…
Lucas定理 对于C(m,n)%P(P是质数)这样的问题,可以通过预处理阶乘和阶乘的逆元,来快速计算.但是当m,n大于P时,就不能保证m,n与P互质了,但不互质的情况下,乘法逆元不存在,此时就需要卢卡斯定理来减小m,n的规模,此处证明略去,给出公式: C(n,m)%P=C(n/P,m/P)*C(n%P,m%P)%P ll Lucas(ll n,ll m) { if (m==0) return 1; return C(n%mod,m%mod)*Lucas(n/mod,m/mod)%mod; }…
2142: 礼物 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1450  Solved: 593[Submit][Status][Discuss] Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方…
补算法导论P564 MODULAR-LINEAR-EQUATION-SOLVER算法(P564)…
中国剩余定理 给出以下的一元线性同余方程组: $\Large(s):\left\{\begin{aligned}x\equiv a_1\ (mod\ m_1)\\x\equiv a_2\ (mod\ m_2)\\\vdots\ \ \ \ \ \ \ \ \ \ \ \ \\x\equiv a_n\ (mod\ m_n)\end{aligned}\right.$ 假设整数$m_1,m_2……,m_n$两两互质,则对任意的整数:$a_1,a_2……,a_n$,方程组有解. 设$M=m_1m_2………
2142: 礼物 Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. Input 输入的第一行包含一个正整数P,表示模: 第二行包含两…
http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1805 题意: A和B之间有a条边,A和G之间有b条边,B和G之间有c条边.现在从A点出发走遍所有的边,然后再回到A点,问一共有多少种方法. 思路: 16年湖南省赛题目,这道题目是求欧拉回路的个数,和生成树的计数有一定的联系. 首先给出神奇的Best定理,这是什么鬼定理,反正查不到什么有关该定理的文章... $ec(G)=t_s(G)\cdot deg(s)! \cdot \prod_{v\i…
题目描述 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人 ,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某 个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. 输入 输入的第一行包含一个正整数P,表示模: 第二行包含两个整整数n和m,分别表示小E从商…
题目链接 答案就是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>…
题目: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的倍数 和 其余部分 分开…