
组合计数
文章平均质量分 75
我不会额
这个作者很懒,什么都没留下…
展开
-
HDU - 4349 Xiao Ming's Hope lucas定理
题目:求c(n,0),c(n,1),...,c(n,n)中有多少个奇数思路:C(n,m)%2,那么由lucas定理,我们可以写成二进制的形式观察,比如 n=1001101,m是从000000到1001101的枚举,我们知道在该定理中C(0,1)=0,因此如果n=1001101的0对应位置的m二进制位为1那么C(n,m) % 2==0,因此m对应n为0的位置只能填0,而1的位置填原创 2017-09-03 19:57:15 · 369 阅读 · 0 评论 -
POJ - 1850 Code
题目:字符串字母按字典序递增的为合法的,给出一个字符串问是第几个(从1开始计数)。非法字符串输出"0"。思路:假设字符串长度为len,长度小于len的累加即可,对于长度等于len的 ,假设对于第pos位,枚举这一位合法的字符x,给答案加上c[26-x-1][len-pos-1]代码:#pragma comment(linker, "/STACK:1024000000,1原创 2017-09-03 13:49:26 · 211 阅读 · 0 评论 -
HDU - 3625 Examining the Rooms 斯特灵数
题目:给出N个房间,每个房间的钥匙随机放在某个房间内(每个房间有且仅有一把钥匙),概率相同。有K次炸门的机会,求能进入所有房间的可能性为多大。1号房间不能炸门。思路:第一类斯特灵数,钥匙与门的对应关系呈现出环。打开一个门之后,环内的所有房间都可以进入,也就是说N个房间形成1--K个环的可能代码:#pragma comment(linker, "/STACK:1024000000,1原创 2017-09-02 21:06:56 · 285 阅读 · 0 评论 -
HDU - 2512 一卡通大冒险 斯特灵数
题目:因为长期钻研算法, 无暇顾及个人问题,BUAA ACM/ICPC 训练小组的帅哥们大部分都是单身。某天,他们在机房商量一个绝妙的计划"一卡通大冒险"。这个计划是由wf最先提出来的,计划的内容是,把自己的联系方式写在校园一卡通的背面,然后故意将自己的卡"遗失"在某处(如水房,TD,食堂,主M。。。。)他们希望能有MM看到他们遗失卡,能主动跟他们联系,这样就有机会请MM吃饭了。他们决定将自己原创 2017-09-02 15:13:36 · 355 阅读 · 0 评论 -
HDU - 4045 Machine scheduling 斯特灵数
题目:有n个机器,每天选出r个机器,且任意两个机器的编号差要大于等于k,并且每天将这r个机器最多分为m组工作,问最多有多少种方案。思路:既然要编号差大于等于k,先令每个机器间编号差为k,那么剩下 rem=n-k*(n-1)-1个机器没用接下来把rem个机器插到空隙中,根据插板法,在r个机器的r+1个空隙中插rem个机器的方案为 :C(r+rem,r)至于分成m组,这就是第二类斯特灵原创 2017-09-02 13:28:34 · 366 阅读 · 0 评论 -
SGU - 441 Set Division 斯特灵数
题目:N个物品分成K个非空子集的方法数。思路:第二类斯特灵数。N很大,K很小,所以用矩阵做。S(N,K)=K*S(N-1,K)+S(N-1.K-1)代码:#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#in原创 2017-09-01 18:57:41 · 279 阅读 · 0 评论 -
UVA - 10601 Cubes 正方体Polya
题目:有12条边,分别有特定的颜色,组成一个立方体,旋转等价,问有多少种。思路:1、静止不动,那么就是12个循环,每个循环节长度为1。2、通过两个对立的顶点,分别旋转120,240,有4组顶点,在每一次旋转当中,可以发现分为4个循环,每个循环节长度为3。3、通过两个对立面的中心,分别旋转90,180,270度。有3组面。在每次旋转90度和270度的时候,可以发现分为3个循环,每原创 2017-08-30 15:36:54 · 401 阅读 · 0 评论 -
HDU - 3441 Rotation 2次Polya
题目:有一个A*A的正方形,拆成A*A个1*1的小正方形,然后组成k个B*B的正方形,而且剩下一个小正方形,也就是A*A=K*B*B+1。问中间的小正方形连到K个B*B正方形的形状有多少种,有C种颜色,旋转视为等价。思路:A*A-1=(A-1)*(A+1),把A-1的质因子求出来,把A+1的质因子求出来,合并,然后枚举B,求出C种颜色下B的等价类的数目,然后把其当成颜色去染K个B的项链,中间还原创 2017-08-29 23:12:25 · 285 阅读 · 0 评论 -
ZOJ - 3233 Lucky Number 组合计数+容斥定理
题目:给你2个数组x,y,求low~high这个范围内,满足至少能被x中任意一个数整除并且至少不能被y中任意一个数整除。思路:直接求至少不能被y中任意一个数整除的个数不好求,我们可以求整除y中所有数的个数,用容斥定理在算的时候顺便减去非法的就好了代码:#pragma comment(linker, "/STACK:1024000000,1024000000")#include#in原创 2017-08-28 23:56:14 · 361 阅读 · 0 评论 -
ZOJ - 3624 Count Path Pair 组合计数
题目:4个点A(0,0),B(p,0),C(m,q),D(m,n),保证p思路:用总的路径数-相交的路径数相交的路径数就是A到C的路径数*B到D的路径数,因为他们之间必有交点E可以理解成从A到E,再到D,这就是相交的路径代码:#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#incl原创 2017-08-28 22:10:34 · 349 阅读 · 0 评论 -
HDU - 4390 Number Sequence 容斥定理
题目:Given a number sequence b 1,b 2…b n. Please count how many number sequences a 1,a 2,...,a n satisfy the condition that a1*a 2*...*a n=b 1*b 2*…*b n (a i>1).InputThe input consists of原创 2017-08-24 10:15:13 · 405 阅读 · 0 评论 -
HDU - 4407 Sum 容斥定理
题目:给你初始为1,2,3,..,n的n个数,有m个操作,一共有2中类型的操作,1,x,y,p,询问区间[x,y]与p互质的数的和,2,x,y将第x个数变成y11思路:由于m不大,我们可以用容斥定理先把区间[x,y]里与p互质的数的和算出来,将每次的改变操作用map存下来,暴力枚举map里的数代码:#pragma comment(linker, "/STACK:102400原创 2017-08-27 23:34:20 · 213 阅读 · 0 评论 -
HDU - 4466 Triangle
题目:给你一根长度为n的铁丝,将铁丝分成几部分,再把每部分都折成三角形,并且每个三角形都相似,而且三角形的边长是整数。问有多少种分法。三角形三遍相等视为相等,三角形顺序不同视为不同思路:设三角形3边为a,b,c,并且a令dp[i]表示周长为i的三角形有多少个考虑周长i:如果b=c,那么c的最长是(i-1)/2,最短是(i+2)/3,那么新增加了(i-1)/2-(i+2)/3+1原创 2017-08-23 16:42:55 · 327 阅读 · 0 评论 -
CodeForces - 111D Petya and Coloring
题目:给你一个n行m列的网格,再给你k中颜色,问让你对其染色有多少种方法。要求对于任意1n,m思路:我们可以发现第1列和第m列的颜色种数一定要一样,否则不符合要求。而且2~m-1列中出现的颜色一定要是第1列和第m列的共有的颜色。dp[i]表示用i种颜色染n格的方法数dp[i]=i^n-sigma(C(j,i)*dp[j])然后枚举共有的颜色i,异色j,累加代码:#pra原创 2017-08-23 14:56:10 · 358 阅读 · 0 评论 -
HDU - 3723 Delta Wave 卡特兰数
题目:让你输出从点(0,0)到点(N,0)一共有多少种方法,点(r,c)可以到点(r,c+1),(r+1,c+1),(r-1,c+1),但是不能走到x轴的下方。下图是N=4的方法Sample Input34Sample Output49思路:行数要么+1,要么+0,要么-1,因为不能到x轴的下方,所以任意时刻+1的次数都要大于等于-1原创 2017-08-26 13:09:31 · 361 阅读 · 0 评论 -
HDU - 2065 "红色病毒"问题 泰勒级数推导
题目:医学界发现的新病毒因其蔓延速度和Internet上传播的"红色病毒"不相上下,被称为"红色病毒",经研究发现,该病毒及其变种的DNA的一条单链中,胞嘧啶,腺嘧啶均是成对出现的。 现在有一长度为N的字符串,满足一下条件: (1) 字符串仅由A,B,C,D四个字母组成; (2) A出现偶数次(也可以不出现); (3) C出现偶数次(也可以不出现); 计算满足条件的字符串个原创 2017-09-04 13:20:05 · 423 阅读 · 0 评论 -
HDU - 3037 Saving Beans lucas定理
题目:给出n,m,p,求C(n+m,m)然后对p取模p代码:#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include原创 2017-09-03 17:38:06 · 290 阅读 · 0 评论