组合数学
文章平均质量分 72
qian99
这个作者很懒,什么都没留下…
展开
-
poj 2773 Happy 2006(容斥原理)
题意:求和m互质的第k个数是多少。 思路:假设我们要求的数是n,那么如何求n之前有多少个数和m互质呢?这个问题直接算不好算,根据减法原理,我们可以求出和m不互质的数,然后用n减去,就可以得到和n互质的数的个数了。假设和m的质因子分别为q1,q2,q3……那么能整除q1的数就有n/q1个,能整除q2的数有n/q2个……将这些数加起来,但是会有重复的,比如能被q1和q2同时整除的被加了两次,这部分要原创 2014-03-29 16:34:33 · 863 阅读 · 0 评论 -
hdu 4349 Xiao Ming's Hope(Lucas定理)
题意:求C(n,0),C(n,1),C(n,2)……C(n,n)中奇数的个数。 思路:Lucas定理的一个推论,把C(n,m)看做用二进制表示,那么为奇数的条件是n的每一位都大于等于m的对应位,因此答案是2^(n的二进制表示中1的个数)。 代码: #include #include #include #include #include #include #include #include #原创 2014-04-01 08:29:19 · 737 阅读 · 0 评论 -
CF 407C Curious Array(差分序列)
题意:给出n个数,有m个操作,每个原创 2014-04-04 14:02:03 · 1241 阅读 · 0 评论 -
UVALive 3295 Counting Triangles(组合计数)
题意:给出一个m×n的网格点中能组成的三角形的个数。 思路:直接算很难入手,可以发现任意三个点可以组成一个三角形当且仅当三点不共线,因此可以用总的方案数-三点共线的方案数。三点形成的直线是水平或者垂直的很好算。主要问题是不共线的方案的计数,受之前做的UVALive 3295 Counting Triangles的启发,用dp[i][j]表示以(0,0)为左上角,(i,j)为右下角的矩形中三点共原创 2014-03-25 10:42:54 · 918 阅读 · 0 评论 -
FZU 2142 Center of a Tree (树dp+组合计数)
题意:原创 2014-04-08 10:58:24 · 2450 阅读 · 1 评论 -
hdu 4359 Easy Tree DP(dp+组合计数)
题意:原创 2014-04-25 18:59:41 · 725 阅读 · 0 评论 -
poj 1286 Necklace of Beads(Polya定理)
题意:用3种颜色给正n边形涂色,问有多少不等价的方案,如原创 2014-04-11 20:18:29 · 680 阅读 · 0 评论 -
hdu 1812 Count the Tetris(polya+高精)
题意:给N×N的正方形格子填原创 2014-04-12 12:31:43 · 701 阅读 · 0 评论 -
zoj 3791 An Easy Game(dp)
题意:给出原创 2014-06-01 19:20:07 · 1244 阅读 · 0 评论 -
hdu 4779 Tower Defense(dp+组合计数)
题意:给出n×m的区域,原创 2014-06-13 17:44:54 · 1066 阅读 · 0 评论 -
hdu 1695 GCD(容斥原理+欧拉函数)
题意:在[1,c]和[1,d]中分别选两个数x,y,求gcd(x,y)==k的数的对数,其中(x,y)与(y,x)为同一种方案。 思路:假设c 代码: #include #include #include #include #include #include #include #include #include #include #include #define inf 0x3f3f原创 2014-04-01 15:55:53 · 685 阅读 · 0 评论 -
hdu 3037 Saving Beans(Lucas定理)
题意:把不超过m个物品放到n个位置,有多少种方法。 思路:利用插板法可以求出把m个物品放到n个位置的方案数为C(n+m-1,m),不超过m个可以想象成再添加一个位置放那些没有放到n个位置的物品,即C(n+m,m)。剩下的利用Lucas定理就可以求解。 代码: #include #include #include #include #include #include #include #inc原创 2014-04-01 08:16:18 · 744 阅读 · 0 评论 -
hdu 4407 Sum(容斥原理)
题意:n个数在一行,有两种操作,一种是求区间[L,R]的数字中与p互质的数的和,另一种是修改某个位置的数。 思路:求区间与p互质的数可以转化为总和-不互质的的数的和,这样就可以通过容斥原理求解。至于修改,由于修改次数比较小,把修改存起来,对于每个查询,一个个改过去。 代码: #include #include #include #include #include #include #incl原创 2014-04-01 11:09:08 · 806 阅读 · 0 评论 -
UVA 11077 Find the Permutations(置换+dp)
题意:将n个数的原创 2014-04-15 08:18:02 · 931 阅读 · 0 评论 -
UVA 10601 Cubes (Polya计数)
题意:给出原创 2014-04-15 11:06:45 · 812 阅读 · 0 评论 -
UVALive 3641 Leonardo's Notebook (置换)
题意:给出一个置换B,问有没有一个置换A,使得A^2=B。 思路:原创 2014-04-14 21:52:41 · 702 阅读 · 0 评论 -
UVA 11330 Andy's Shoes(置换)
题意:给出n对不同颜色的鞋子,原创 2014-04-15 14:55:23 · 823 阅读 · 0 评论 -
UVA 11255 Necklace(Polya)
题意:求给定颜色数组成的不等价的原创 2014-04-15 18:24:55 · 791 阅读 · 0 评论 -
poj 2154 Color(欧拉函数+Polya)
题意:原创 2014-04-15 22:13:43 · 782 阅读 · 0 评论 -
hdu 3929 Big Coefficients(Lucas定理+容斥原理)
题意:求F(x) = (1+x)^a1 + (1+x)^a2 + ... + (1+x)^am.中系数为奇数的项的个数。 思路:由Lucas定理可知,(1+x)^n中奇数项的个数等于2^(n的二进制表示中1的个数)。Lucas定理相关证明可以看这里。然后就是利用容斥原理,把重复的减去,两项相交的结果中奇数项的个数为2^(a[i]&a[j]的二进制表示中1的个数)。需要注意的是,由于偶数个奇数项在原创 2014-03-31 20:52:32 · 1090 阅读 · 0 评论 -
HDU 2865 Birthday Toy(Polya+矩阵乘法+dp)
题意:要构成一个长度为n原创 2014-04-16 19:10:39 · 866 阅读 · 0 评论 -
POJ 2888 Magic Bracelet (Polya+欧拉函数+矩阵乘法)
题意:原创 2014-04-16 10:43:52 · 709 阅读 · 0 评论 -
hdu 4921 Map(组合计数)
题意:给出一些拼图,有的拼图原创 2014-08-08 14:16:20 · 872 阅读 · 0 评论