组合数\lucas定理
「已注销」
这个作者很懒,什么都没留下…
展开
-
HDU 6129 Just do it(杨辉三角+lucas \ 记忆化dp)
思路:首先看这么一个图:(此图来自http://blog.csdn.net/qq_37412229/article/details/77231474) 然后我们就能发现每个数对应的系数其实是组合数,然后我们还发现这个杨辉三角跟坐标的对应关系。 设坐标为(x,y),那么对应的组合数为c(x+y-2,y-1)。 所以我们对于每一个奇数的组合数,计算每个a对于其他项的贡献。#include<iost原创 2017-08-16 17:00:20 · 330 阅读 · 0 评论 -
HDU 6143 Killer Names (容斥/第二类Stirling数)
思路:考虑左边选i个字符组成长度为n的串,那么右边只能从m-i中选1个/2个/3个。。。m-i个数构成长度为n的串。所以问题就转化成了求i个字符(i个字符都出现)构成长度为n的串的个数,设这个为f(x)f(x)。 我们可知 f(i)=in−∑i−1j=1Cji∗f(j)f(i) = i^n - \sum_{j=1}^{i-1} C_i^j * f(j) 式子意思为:从所有的可能中减去只用其中j种原创 2017-08-18 13:08:01 · 288 阅读 · 0 评论 -
HDU 6114 Chess (组合数 思路)
思路:考虑一个n*m的矩阵,那么其上放置的最多的妻子(棋子)个数必然为 min(n,m) min(n,m) 。 所以我们现在只考虑n大于m的情况。 我们假想一个从1开始的n*m的矩阵。从n个数中不重复的选m个,根据题目中要求的:对于任何一个車A,如果有其他一个車B在它的上方(車B行号小于車A),那么車A必须在車B的右边(車A列号大于車B)。所以我们可知一旦我们选择好了这m个数字都是n中的哪些,这原创 2017-08-14 14:15:14 · 268 阅读 · 0 评论 -
FZU 2020 组合(组合数 lucas定理模板题)
思路:m,n很大的组合数,用lucas定理求解。 其中小的 c(x,y)c(x,y) 用乘法逆元暴力求解。因为p是素数,而且我们在用lucas定理时每次的x,y都必然小于p,所以也就必然与p互质,所以满足费马小定理。#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<map>#define原创 2017-08-14 14:35:38 · 373 阅读 · 0 评论 -
HDU 3944 DP?(lucas定理 组合数)
坑点:注意起点和终点也算。 (盗图自http://www.cnblogs.com/simplekinght/p/6986268.html?utm_source=itdadao&utm_medium=referral) 解释一下这个样例2: 根据图中我们的标记,我们得知两种走法,(从终点到起点)先斜上,再上。或者先上,再斜上。 而选择这其中的哪一个呢?依据m的位置而定,如果m>=n/2原创 2017-08-14 20:25:00 · 218 阅读 · 0 评论 -
HDU 4349 Xiao Ming's Hope(思路 lucas定理)
(图来自http://blog.csdn.net/acdreamers/article/details/8037918) 首先我们知道c(0,0)=1,c(0,1)=0,c(1,1)=1,c(1,0)=1c(0,0)=1,c(0,1)=0,c(1,1)=1,c(1,0)=1 这个是基础。然后对于某个c(n,m)c(n,m) 我们必须让右边的连乘式为1(模2的情况下,因为我们最终要求的也只是看他是原创 2017-08-14 21:25:22 · 427 阅读 · 0 评论 -
POJ 3219 Binomial Coefficients(组合数 lucas定理)
思路:此题思路类似于这个题,然后我们可以根据这个题的结论得到一个判断方法,n的2进制位上0的位置,对应的一定得是m相应位置的0,否则最后就是0了,所以我们得到了这个式子 (n&m) == m。 http://blog.csdn.net/wing_wuchen/article/details/77170227#include<iostream>#include<cstdio>#include<q原创 2017-08-14 21:33:35 · 315 阅读 · 0 评论