【科技】扩展Lucas随想】的更多相关文章

扩展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$个形如…
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_{…
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…
BZOJ_2142_礼物_扩展lucas+组合数取模 Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物,打算送给m个人 ,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某 个人在这两种方案中收到的礼物不同).由于方案数可能会很大,你只需要输出模P后的结果. Input 输入的第一…
再次感谢zyf2000超强的讲解. 扩展CRT其实就是爆推式子,然后一路合并,只是最后一个式子上我有点小疑惑,但整体还算好理解. #include<iostream> #include<cstdio> #include<queue> #include<map> #include<algorithm> #include<vector> #include<bitset> #include<set> #include…
没有限制的话算一个组合数就好了.对于不小于某个数的限制可以直接减掉,而不大于某个数的限制很容易想到容斥,枚举哪些超过限制即可. 一般情况下n.m.p都是1e9级别的组合数没办法算.不过可以发现模数已经被给出,并且这些模数的最大质因子幂都不是很大,那么扩展lucas就可以了. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring>…
题目链接 ->扩展Lucas //求C_n^k%m #include <cstdio> typedef long long LL; LL FP(LL x,LL k,LL p) { LL t=1ll; for(; k; k>>=1,x=x*x%p) if(k&1) t=t*x%p; return t; } void Exgcd(LL a,LL b,LL &x,LL &y) { if(!b) x=1ll, y=0ll; else Exgcd(b,a%b,y…
题目链接:传送门 题目: 题目描述 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为N的山脉H可分为从左到右的N段,每段有一个独一无二的高度Hi,其中Hi是1到N之间的正整数. 如果一段山脉比所有与它相邻的山脉都高,则这段山脉是一个山峰.位于边缘的山脉只有一段相邻的山脉,其他都有两段(即左边和右边). 类似地,如果一段山脉比所有它相邻的山脉都低,则这段山脉是一个山谷. 地精们有一个共同的爱好——饮酒,酒馆可以设立在山谷之中.地精的酒馆不论白天黑…
首先说下啥是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}$. 我们发现,如果对…
题目链接 BZOJ4830 题解 当\(a = b\)时,我们把他们投掷硬币的结果表示成二进制,发现,当\(A\)输给\(B\)时,将二进制反转一下\(A\)就赢了\(B\) 还要除去平局的情况,最后答案就是 \[\frac{2^{a + b} - {a + b \choose a}}{2}\] 当\(a \neq b\)时,有些状态可能翻转后还是\(A\)赢\(B\),需要加上这部分 \[ \begin{aligned} \sum\limits_{i = 0}^{b} \sum\limits_…