
组合数学
v5zsq
新的一天,新的不会
展开
-
HDU 1023 Train Problem II(组合数学)
Description 编号为1~n的n列货车按照标号严格递增的顺序进站,问有多少种出站顺序 Input 多组输入,每组用例占一行为一整数n表示火车列数,以文件尾结束输入 Output 对于每组输入,输出出站顺序种类数 Sample Input 1 2 3 10 Sample Output 1 2 5 16796 Solution 对于每一个数来说,必须进栈一次、出原创 2015-10-03 12:02:24 · 507 阅读 · 0 评论 -
CodeForces 451 E.Devu and Flowers(组合数学)
Description 有n个箱子,要选s支花,每个箱子有f[i]支花。同一个箱子的花颜色相同,不同箱子的花颜色不同,问说可以有多少种组合 Input 第一行输入两个整数n和s表示箱子数量和要选的花的数量,第二行n个整数表示每个花坛中花的数量 Output 输出从这n个箱子中选取s支花的方法数 Sample Input 3 5 1 3 2 Sample Output 3 So...原创 2015-08-27 18:39:42 · 701 阅读 · 0 评论 -
POJ 3904 Sky Code(素因子分解+容斥)
Description 给出n个数,先从中选取四个数,使得这四个数最大公因子为1,问有多少种选取方法 Input 多组输入,每组用例第一行为一整数n(n<=10000),第二行n个整数ai(ai<=10000) Output 对于每种用例,输出满足条件的选取方案数 Sample Input 4 2 3 4 5 4 2 4 6 8 7 2 3 4 5 7 6 8 Samp原创 2015-10-04 10:30:25 · 586 阅读 · 0 评论 -
HDU 3584 Cube(三维BIT+容斥)
Description 给出一个全是0组成的三维数组,有两种操作: 0 x1 y1 z1 x2 y2 z2:把从点(x1,y1,z1)到点(x2,y2,z2)之间这个小正方体中所有元素反转,即由0变1,由1变0 1 x y z:查询点(x,y,z)上的值 Input 多组输入,每组用例第一行为两个整数n和m分别表示三维数组的任一维大小以及操作数,之后m行每行一种操作,以文件尾结束输入原创 2015-09-08 08:38:28 · 525 阅读 · 0 评论 -
HDU 5297 Y sequence(容斥+迭代)
Description 给定整数n和整数r,在1、2、3、4、5…….的序列中删掉可以开2次方的数,3次方的数,4次方的数,…….r次方的数,剩下的数称为Y序列,求Y序列中第n个数是多少 Input 第一行为一个整数T表示用例组数,每组用例为两个整数n和r (n<=2*10^18,2<=r<=62,T<=30000) Output 对于每组用例,输出Y序列中第n个数 Sample In原创 2016-01-05 16:04:02 · 562 阅读 · 0 评论 -
POJ 1240 Pre-Post-erous!(组合数学+递归)
Description 给出一棵m-叉树的前序和后序遍历序列,问这棵树有多少种 Input 多组用例,每组用例首先输入一个整数m表示树的叉数,之后为两个串表示该树的前序和后序遍历序列,以m=0结束输入 Output 对于每组用例,输出满足输入的前序和后序遍历序列的m-叉树的个数 Sample Input 2 abc cba 2 abc bca 10 abc bca 13 abej原创 2016-03-01 16:57:11 · 858 阅读 · 0 评论 -
CodeForces 630 F. Selection of Personnel(组合数学)
Description 某公司准备从n名员工中选取5~7个人组成精英小组,问有多少种组队方案 Input 一个整数n表示员工个数(7<=n<=777) Output 输出组队方案数 Sample Input 7 Sample Output 29 Solution 简单组合题,ans=C(n,5)+C(n,6)+C(n,7) Code#include<cstdio>#incl原创 2016-02-21 10:01:38 · 618 阅读 · 0 评论 -
CodeForces 630 G. Challenge Pennants(组合数学)
Description 公司有5面A锦旗,3面B锦旗,先欲将这些锦旗全部发给n位员工,每位员工可以得到任意种类任意数量的锦旗,问有多少种发放方案 Input 一个整数n表示公司员工数(1<=n<=500) Output 发放方案数 Sample Input 2 Sample Output 24 Solution 5面A锦旗发放方案为11111,1113,122,113,14,2原创 2016-02-21 10:06:46 · 719 阅读 · 0 评论 -
CodeForces 630 H. Benches(组合数学)
Description 一座城市有n条南北走向的街道和n条东西走向的街道,现要将5条不用的长凳放置在街道相交处,且同一条街道上的长凳数不超过一条,问有多少种放置方案 Input 一个整数n表示街道数(5<=n<=100) Output 长凳的放置方案数 Sample Input 5 Sample Output 120 Solution 简单组合,ans=A(5,5)*C(n,5原创 2016-02-21 10:11:29 · 816 阅读 · 0 评论 -
CodeForces 630 K. Indivisibility(容斥)
Description 给出一整数n,问1~n中不能整除2~10中任意一个数的数的个数 Input 一整数n(1<=n<=10^18) Output 输出1~n中不能整除2~10中任意一数的数的个数 Sample Input 12 Sample Output 2 Solution 能被4,6,8整除的都能被2整除,能被6,9整除的都能被3整除,能被10整除的都能被5整除,所以只原创 2016-02-21 10:36:20 · 802 阅读 · 0 评论 -
CodeForces 611 C. New Year and Domino(dp+容斥)
Description 一个只有’.’和’#’组成的h*w的图,一根木棍需要放在两个连续的’.’上,现在有n次查询,每次查询点[r1,c1]到[r2,c2]的矩形区域中有多少种放木棍的方法 Input 第一行两个整数h和w表示矩形行列数,之后为一h*w矩阵,然后是一整数n表示查询数,最后n行每行四个整数r1,c1,r2,c2表示查询区间(1<=h,w<=500,1<=r1<=r2<=h,1<=原创 2016-02-27 18:51:46 · 602 阅读 · 0 评论 -
BZOJ 2683 简单题(CDQ分治+容斥)
Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: 1 x y A(1<=x,y<=N,A是正整数):将格子x,y里的数字加上A 2 x1 y1 x2 y2(1<=x1<= x2<=N,1<=y1<= y2<=N):输出x1 y1 x2 y2这个矩形内的数字和 3:终止程序 Input 输入文件第一行一个正整数N,接下来每行一原创 2016-04-07 10:58:40 · 994 阅读 · 0 评论 -
BZOJ 1176 Mokia(CDQ分治+容斥)
Description 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. Input 第一行两个整数,S,W;其中S为矩阵初始值;W为矩阵大小 接下来每行为一下三种输入之一(不包含引号): “1 x y a” “2 x1 y1 x2 y2” “3” 输入1:你需要把(原创 2016-04-07 11:02:03 · 1058 阅读 · 0 评论 -
HDU 5729 Rigid Frameworks(组合数学+dp)
Description 矩形是不稳定的,会变成平行四边形,但是可以在矩形对角线加边使这个矩形稳定下来。给一个n*m的矩形,可以在格里加两种对角线(主对角线或斜对角线),或者不加对角线,问使这个n*m的矩形稳定下来的方案数 Input 多组用例,每组用例占一行为两个整数n和m,以文件尾结束输入(1<=n,m<=10) Output 对于每组用例,输出使这个n*m矩形稳定下来的方案数,结果模1原创 2016-07-25 14:48:39 · 752 阅读 · 0 评论 -
HDU 5731 Solid Dominoes Tilings(轮廓线DP+容斥)
Description 求n*m区域用2*1和1*2的骨牌铺满且没有横竖割线的方案数 Input 多组用例,每组用例占一行包括两个整数n和m,以文件尾结束输入(1<=m,n<=16) Output 对于每组用例,输出合法方案数,结果模1e9+7 Sample Input 2 2 5 6 8 7 Sample Output 0 6 13514 Solution 首先用轮廓原创 2016-07-25 16:09:02 · 866 阅读 · 1 评论 -
HDU 5738 Eureka(组合数学)
Description 给出n个整点,定义f(u,v)为u和v的距离,g(u,v,w)=((f(u,v)+f(u,w)+f(v,w))/2,定义这n个点的非空子集P是最好的当且仅当P中含有一个最好点对(u,v),最好点对定义是,对集合P中任一点w,(u,v)满足f(u,v)>=g(u,v,w),问有多少种不同的最好集合 Input 第一行一个整数T表示用例组数,对于每组用例,首先输入一个整数n原创 2016-07-27 14:47:58 · 496 阅读 · 0 评论 -
HDU 5621 KK's Point(组合数学)
Description 我们可爱的K遇到了一道数学难题:他在一个圆上点下了互不重合的N(2≤N≤10^5)个点,现在他要将这N个点两两相连(圆内没有三条线交于一个点的情况),K想知道图形中一共有多少个交点(包括边界上的点) Input 第一行一个数T(1≤T≤10),表示数据组数。 接着T行,每行一个整数N(2≤N≤10^5 ),表示圆上的点数。 Output 对于每一个数据输出一原创 2016-08-04 17:57:51 · 490 阅读 · 0 评论 -
HDU 5622 KK's Chemical(dp+组合数学)
Description 我们可爱的KK有一道困难的化学题目:实验室有N(1≤N≤100)瓶化学药品,编号为0到N-1,现在KK知道第i瓶当且仅当和第c[i]瓶放在一起时会发生爆炸。KK得到任务要整理实验室,他需要将他们装进k个不同的盒子里。显然,为了KK的生命安全,你不能把两瓶会造成爆炸的药品放进同一个箱子。现在KK想知道有多少种不同的方案。由于答案可能会非常非常的大,所有将最后答案取1e9+7的原创 2016-08-04 18:14:30 · 633 阅读 · 1 评论 -
HDU 5779 Tower Defence(????)
Description ????????Tower Defence???????????????????n??????(??????,???????),????????1,???1??????????????????k.???????????????????????,????????????? Input ?????????T(1=T=10) ???????,?????n?k(1=k,n=6原创 2016-08-01 16:39:07 · 615 阅读 · 0 评论 -
BZOJ 2440 完全平方数(莫比乌斯反演+容斥原理+二分)
Description 小X自幼就很喜欢数。但奇怪的是,他十分讨厌完全平方数。他觉得这些数看起来很令人难受。由此,他也讨厌所有是完全平方数的正整数倍的数。然而这丝毫不影响他对其他数的热爱。这天是小X的生日,小W想送一个数给他作为生日礼物。当然他不能送一个小X讨厌的数。他列出了所有小X不讨厌的数,然后选取了第 K个数送给了小X。小X很开心地收下了。 然而现在小W却记不起送给小X的是哪个数了。你能帮他原创 2016-08-03 11:22:16 · 717 阅读 · 0 评论 -
HDU 5072 Coprime(数论+容斥原理)
Description 给出n(3≤n≤10^5)个数字,每个数ai满足1≤ai≤10^5,求有多少对(a,b,c)满足[(a,b)=(b,c)=(a,c)=1] or [(a,b)≠1and(a,c)≠1and(b,c)≠1],都互素或都不互素 Input 第一行一整数T表示用例组数,每组用例第一行为数字个数n,第二行n个互不相同的整数ai(T<=5,3<=n<=10^5,1<=ai<=10原创 2016-08-03 12:29:18 · 480 阅读 · 0 评论 -
HDU 5762 Teacher Bo(鸽巢定理)
Description 给出n个整点的坐标,问是否存在点A,B,C,D(A< B,C< D,A!=C or B!=D)使得AB之间曼哈顿距离等于CD之间曼哈顿距离 Input 第一行一整数T表示用例组数,每组用例首先输入两个整数n和m表示点数以及点坐标绝对值上限,之后n行每行输入两个非负整数xi,yi(n,m<=10^5,0<=xi,yi<=m) Output 对于每组用例,如果存在满足条原创 2016-08-08 17:54:10 · 552 阅读 · 0 评论 -
HDU 5768 Lucky7(中国剩余定理+容斥原理)
Description 给出区间[l,r],问[l,r]中能整除7且模pi不等于ai的数的个数 Input 第一行一整数T表示用例组数,每组用例首先输入三个整数n,l,r,之后n行每行两个整数pi,ai (T<=20,0<=n<=15,0< l< r< 10^18,pi互不相同且pi!=7,p1*…*pn<=10^18,0<=ai< pi<=10^5) Output 对于每组用例,输出[原创 2016-08-10 12:50:06 · 560 阅读 · 0 评论 -
HDU 5852 Intersection is not allowed!(组合数学+行列式)
Description 一个n*n棋盘,第一行第a1,a2,…,ak列有k个棋子,每个棋子都只能往下和往右走,每个棋子的终点是第n行第b1,b2,…,bk列,问这k个棋子到达各种的终点且路径不交叉的方法数 Input 第一行一整数T表示用例组数,每组用例首先输入两整数n和k表示棋盘规模和棋子数量,之后k个整数ai表示k个棋子的起点,最后k个整数bi表示k个棋子的终点(1<=n<=10^5,1<原创 2016-09-02 21:39:21 · 1063 阅读 · 0 评论 -
BZOJ 1005 明明的烦恼(Purfer序列+组合数学+数论+高精度)
Description 自从明明学了树的结构,就对奇怪的树产生了兴趣……给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N(0 < N < = 1000), 接下来N行,第i+1行给出第i个节点的度数Di,如果对度数不要求,则输入-1 Output 一个整数,表示不同的满足要求的树的个数,无解输出0 Sample I原创 2016-09-03 15:37:55 · 681 阅读 · 0 评论 -
HDU 5446 Unknown Treasure(Lucas定理+中国剩余定理)
Description 求C(n,m)%M Input 第一行一整数T表示用例组数,每组用例输入三个整数n,m,k,之后k个不同的素数p1~pk表示M=p1*p2*…*pk (T<=20,1<=m<=n<=10^18,1<=k<=10,M<=10^18,pi<=10^5) Output 对于每组用例,输出C(n,m)%M Sample Input 1 9 5 2 3 5 Sam原创 2016-08-25 10:36:40 · 501 阅读 · 0 评论 -
CodeForces 559 C.Gerald and Giant Chess(组合数学+dp)
Description 一块h*w的棋盘,上面有n个黑块,现在处于左上角的棋子只能往下或往右走,且不能经过黑块,问走到终点的路径有多少种 Input 第一行三个整数h,w和n,之后n行每行两个整数x和y表示该黑块坐标 Output 输出到达终点的路径条数,结果模1e9+7 Sample Input 3 4 2 2 2 2 3 Sample Output 2 Solution...原创 2015-07-25 15:28:06 · 784 阅读 · 0 评论 -
HDU 5794 A Simple Chess(组合数学+dp)
Description 一个n*m棋盘,上面有r个黑块,初始马在(1,1)处,每次只能往右下跳,且不能跳到黑块处,问马跳到(n,m)的所有合法方案数 Input 多组用例,每组用例首先输入三个整数n,m,r分别表示棋盘规模以及黑块数量,之后r行每行两个整数x和y表示该黑块坐标,保证起点不是黑块,以文件尾结束输入 (1<=n,m<=10^18,0<=r<=100,1<=x<=n,1<=y<=m原创 2016-08-26 13:26:54 · 708 阅读 · 0 评论 -
HDU 5629 Clarke and tree(Purfer序列+dp+组合数学)
Description 给出n个正整数ai,现从n个点中选s个点构成一棵树,使得编号为i的节点度数不超过ai,问所有可能情况数 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n,之后n个整数ai (1<=T<=10,2<=n<=50,1<=ai < n) Output 对于每组用例,输出n个数,第s个数表示节点数为s的合法的树的数量,结果模1e9+7(1<=s<=n)原创 2016-09-19 22:03:57 · 788 阅读 · 0 评论 -
CodeForces 547 C.Mike and Foam(素因子分解+容斥)
Description 有n张牌,每张牌上都写着一个数字ai,开始时所有牌都在手上。现在有q个询问,每次询问指定一个数x,如果第x张牌在你手上,就要把它放在桌子上;如果在桌子上,就要拿回手中。每次这样拿完或者放完牌,要求回答当前桌子上的牌中,有多少对(i,j)(i < j),满足gcd(ai,aj)=1 Input 第一行为两个整数n和q表示牌的数量和查询数量,第二行n个整数表示每张牌...原创 2015-09-04 08:32:57 · 724 阅读 · 0 评论 -
HDU 4497 GCD and LCM(素因子分解+组合数学)
Description 已知lcm,gcd其中gcd=gcd(x,y,z),lcm=lcm(x,y,z),问有x,y,z多少种组合使得关系成立( (1,3,2)和(1,2,3)是不同解 ) Input 第一行为用例组数T,每组用例占一行包括两个整数gcd和lcm Output 对于每组用例,输出解的个数 Sample Input 2 6 72 7 33 Sample Out原创 2015-09-04 08:31:49 · 639 阅读 · 0 评论 -
POJ 2645 Boastin' Red Socks(组合数学)
Description 有很多只红色或蓝色的袜子,现从中任意选取两只都是红袜子的概率为p/q,问红色袜子和蓝色袜子的数量,如果有多重可行方案,输出总数最小的那个 Input 两个整数p和q(0< p<=q) Output 如果存在可行方案则输出总数最小的那个,如果不存在可行方案则输impossible Sample Input 1 2 6 8 12 2499550020 56 7原创 2016-03-01 09:07:03 · 677 阅读 · 0 评论 -
CodeForces 617 B. Chocolate(组合数学)
Description 给出一个只由01组成的序列,要求将这个序列分成若干段,每段仅含一个1,问有多少种划分方法 Input 第一行为一整数n表示序列长度,之后n个整数表示该序列(1<=n<=100) Output 输出划分方案数 Sample Input 5 1 0 1 0 1 Sample Output 4 Solution 简单计数,记录每个1的位置pos[i],假设有原创 2016-02-26 10:59:40 · 538 阅读 · 0 评论 -
CodeForces 630 I. Parking Lot(组合数学)
Description 一公司奖励员工4种不同的汽车,每种汽车完全相同,而公司的停车场只有2n-2个停车位,所以停车场停不下所有车,甚至连一种车都停不完,而老板觉得如果停车场恰有n辆相同的车排在一起会很好看,问有多少种停车方案 Input 一个整数n(3<=n<=30) Output 停车方案数 Sample Input 3 Sample Output 24 Solution原创 2016-02-21 10:21:06 · 560 阅读 · 0 评论 -
POJ 3370 && HDU 1808 Halloween treats(鸽巢原理)
Description 万圣节到了,有m个小孩要去n个地方要糖吃,现在给出n个地方的糖的数量,问是否可以从中选出某些地方,使得糖的数量可以整除m,如果可以则输出其中一组解,不可以的话输出-1 Input 多组输入,每组用例第一行为两个整数m和n(1 Output 对于每组用例,如果存在可行方案则输出其中一组,否则输出-1 Sample Input 4 5 1 2 3 7 5 3原创 2015-09-03 08:54:51 · 625 阅读 · 0 评论 -
POJ 2356 Find a multiple(鸽巢原理)
Description 给出一个数n,接着再给出n个数,要你从这n个数中任意选择m个数,使得其和是n的倍数,如果找不到这样的答案则输出0,答案可能有多个,任意输出一解就行 Input 第一行为一个正整数n,之后为n个数 Output 在输出的第一行输出m,之后m行输出这m个数(升序),如果无解则输出0 Sample Input 5 1 2 3 4 1 Sample Out原创 2015-09-03 08:54:36 · 656 阅读 · 0 评论 -
POJ 1095 Trees Made to Order(卡特兰数+递归)
Description 定义二叉树的编号: 1.空树编号0 2.只有一个节点的树编号为1 3.有m+1个节点的树编号比所有有m个节点的树的编号大 4.对节点数相同的的树,右子树节点数多的树编号小,右子树节点数相同则递归右子树,同样是右子树节点多的树编号小 先给出一个编号n,输出这课二叉树 Input 多组输入,每组用例为一个整数n表示一棵二叉树的编号,以n=0结束输入 Output原创 2015-12-31 14:25:09 · 1138 阅读 · 0 评论 -
SGU 130 Circle(卡特兰数)
Description 一个圆上顺次有2k个点,在这2k个点上连k条弦(每个点只能连一条边),问最少可以将这个圆分为几部分,有多少种方法 Input 一个整数k(1<=k<=30) Output 两个整数表示这个圆有多少种方法被被分为最少的几部分 Sample Input 2 Sample Output 2 3 Solution 显然这个圆最少会被分成k+1部分,即2k个点两两原创 2016-04-15 11:17:22 · 717 阅读 · 0 评论 -
HDU 5514 Frogs(容斥)
Description 有n只青蛙和m块围成一圈的石头(编号0~m-1),初始状态所有青蛙都在第0块石头上,每只青蛙一次可以往前跳ai块石头,问最终所有被青蛙踩过的石头的编号和 Input 第一行为一整数T表示用例组数,每组用例第一行为两个整数n和m表示青蛙数量和石头数量,第二行为n个整数ai表示每只青蛙一次可以跳的石头数(1≤n≤10^4, 1≤m≤10^9,1<=ai<=10^9) Ou原创 2016-01-05 14:51:00 · 484 阅读 · 0 评论 -
GYM 100285 E. The Emperor’s plan(组合数学+dp)
Description 现在有n个参议员,其中有k个人是间谍,为了谋取自己的利益,现在每个间谍在每个晚上都会干掉不是间谍的参议员,一个间谍一天晚上只会干掉一个参议员,且间谍在晚上不会干掉自己人,在白天的时候,为了排除间谍,参议员们要排挤掉一部分人使得剩下的不是间谍的参议员的人数期望值最大,白天排挤一部分人出去的时候是随机的 (相当于白天间谍互相不认识) ,只是数量决定于排挤之后剩余的非间谍参议员原创 2015-08-15 19:58:37 · 873 阅读 · 0 评论