组合数学
Marcus-Bao
这个作者很懒,什么都没留下…
展开
-
POJ 3734 Blocks 组合数学
H - BlocksTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluSubmit Status Practice POJ 3734DescriptionPanda has received an assignment of painting a l原创 2016-12-02 20:08:37 · 828 阅读 · 0 评论 -
HDU - 4803 Poor Warehouse Keeper 二进制拆分+组合数
timulianjie题意:求n个数里面,取i个数异或的所有组合的和,i取1~n n思路:考虑到C(n,k)的情况不可能穷举,那么我们想想在二进制上下功夫.对于选出k个数异或的结果,我们可以考察每一位,首先该位为0对答案无影响,我们不考虑.考虑这一位为1,那么异或的话可能就需要奇数个1.可知我们选取k个数对应二进制位为奇数个1的情况有,1,3,5,....因为n比较小原创 2017-09-30 23:17:44 · 299 阅读 · 0 评论 -
hdu 5446 Unknown Treasure lucas+CRT || 扩展lucas
题目链接题意:求C(n,m)%(∏pi)。pi小于105,m,n,以及答案都是1018。思路:裸地lucas定理,分别对每个素数取模然后CRT合成就行。我用的扩展lucas过得..#include using namespace std;typedef long long ll;const int N = 1e5;ll prim[N原创 2017-09-20 17:04:24 · 331 阅读 · 0 评论 -
codeforces 869C The Intriguing Obsession 组合数学
题目链接 题意:有3个群岛,每个群岛中有一些互不相同的岛屿,现在建一些桥,使得同一群岛内的两个岛屿要么不连通要么最短路至少经过3条桥。给定三个群岛包含的岛数,求合法的建桥的方案数。 思路:不连通很好考虑,我们直接不允许相同的岛屿连边就好了. 考虑最短路至少3条,也就是说同一种岛屿不能同时和其他另一种岛屿两个或以上连边,否则就不满足条件.那么我们将三种岛屿两两考虑,找出两两岛屿连边的情况,然原创 2017-10-07 23:19:47 · 499 阅读 · 0 评论 -
bzoj 1485 有趣的数列 卡特兰数 + 数论 %p 不为质数
题目链接我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件:(1)它是从1到2n共2n个整数的一个排列{ai};(2)所有的奇数项满足a1(3)任意相邻的两项a2i-1与a2i(1≤i≤n)满足奇数项小于偶数项,即:a2i-1现在的任务是:对于给定的n,请求出有多少个不同的长度为2n的有趣的数列。因为最后的答案可能很大,所以只要求输出答案原创 2017-08-21 21:20:27 · 849 阅读 · 0 评论 -
hdu 3439 Sequence 错排公式 + 排列组合+CRT %不是质数
题意:1~n的排列有n!种,定义D(某个排列)表示为排列中不动点的个数。例如D({1,2,3})=3,D({1,3,2})=1。问1~n的排列中,不动点个数为k的有多少个,对m取余 (T思路:其实就是一个组合数加错排? C(n,k)*F(n-k) 选出k个不动,剩下的错排公式.关键是取%不是个质数了.还是老方法,对m分解质因数分别求然后CRT合成.观察发现n原创 2017-09-14 00:20:37 · 537 阅读 · 0 评论 -
codeforces 838D D.Airplane Arrangements 思维构造+排列组合
参考网上唯一一发题解 感谢!题目链接题意:航空公司卖机票。飞机座位是1~n的,卖m张票,m小于等于n,每张票上有三个信息,票号 i,座位号 j,登机入口k,登机入口指的是从机头进入或者是从机尾进入。乘客登飞机规则:1. 乘客按照机票的编号从小到大依次登机。2. 乘客登飞机时,从票上指定的入口进入,径直走到原创 2017-08-19 00:21:27 · 625 阅读 · 0 评论 -
codeforces 837F. Prefix Sums 思维+二分+组合数
题目链接题意:p(x)表示对于一个元素个数为m的x的序列,会产生一个序列y 为m+1个元素,且有y[i]=sum(x[j]) 0现在给你一个长度为n的序列A0,给你一个k,问你要至少进行几次操作,使得Ai 当中存在某一个元素的值>=k。 Ai = p(Ai-1)思路:这个题目我的失败之处在于没想到二分.求最少的操作次数啊....而且满原创 2017-08-18 23:38:53 · 967 阅读 · 0 评论 -
hdu 6143 Killer Names 第二类斯特灵数 组合数学
题目链接题意:每个人的名字由两部分组成,每部分的长度是n,给你m种字符,最多能构成多少个人的名字。 思路:首先我们可以把这n个字符看成n个不同的小球,放到k个不同的盒子里,这就可以想到可能和第二类斯特灵数有关系. 仔细一想,选出的k个集合中存在顺序的关系,所以再乘上个k!。那么我们对于n个字符的选法有C(M,K)*K原创 2017-08-17 20:28:20 · 329 阅读 · 0 评论 -
51Nod - 1453 抽彩球 逆推+排列组合
题目链接思路:这个题目中有一个限制,那就是最后一个球总是在编号比他大的球拿完之前拿完.如果我们正常的从前往后做的话,会发现有很多的限制,根本不可能考虑全面. 所以对于这种存在前后关系的题目我们都尽可能的去想逆推,去看看逆推可不可以有结果. 对于最后一种颜色k,我们只需要将它的num[i]个球中拿出一个放在最后就可以了,这样就保原创 2017-07-17 19:32:34 · 482 阅读 · 0 评论 -
有关多重集合的排列和组合问题
转载自大佬一、先来回顾一下无重复元素的排列组合定义排列,英文名为Permutation,是指从某元素集合中取出指定个数的元素进行排序组合,英文名为Combination,是指从某元素集合中仅仅取出指定个数的元素,不考虑排序从有n个不同元素的集合任取r个元素的排列方式有:P(n, r) = n*(n-1)*...*(n-r+1) =转载 2017-07-12 11:52:46 · 1679 阅读 · 0 评论 -
HDU - 1261 字串数 多重集合的排列问题+高精度
题目链接题意:一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA". ,给定若干字母和它们相应的个数,计算一共可以组成多少个不同的字符串.思路: 这个算是一个水题了,直接套多重集合排列的公式,这个公式也只适用于当r==n的情况.公式为:n!/(n1!*n2!*n3!....nk!) n为所有字母的和. 上述可以理解成,原创 2017-07-12 10:14:46 · 714 阅读 · 0 评论 -
ZJCOJ 勤劳的ACgirls 组合数+求末尾的0
题目链接这个题的话,可以看成n个小球放到m个不同的小盒子里,保证每个小盒子至少有k个,这个问题我博客中有提到过,我们先保证每个有k个还剩n-m*k个,那么将剩下的放到m个不同的小盒中并且允许有空盒的话,我们就可以知道先放m个,就是n-m*k+m个小球选分成m组 就是C(n-m*k+m-1,m-1)个. 然后要求末尾中0的个数,这个题我博客中也做过就是那个n!中末尾0的个数,因为那个原创 2017-06-02 23:49:34 · 521 阅读 · 0 评论 -
qduoj 140 题目6 组合数学
题目链接思路:算是一个比较考验思维的组合数学题目吧,当时只是大体一看没啥思路就换题了,结果自己傻逼搞个物理题什么都是对的结果把输入的变量整反了一直wa到比赛结束前一秒才想起来,然而已经晚了.....现在回头再看这个题目觉得还是很简单的. 首先我们可以把n个x的和看成X,再把m个y的值看成Y,因为k的范围很小,所以我们可以去O(n^2)枚举X和Y,找到所有或起来为k的可行解,然原创 2017-05-22 16:26:52 · 519 阅读 · 0 评论 -
hannnnah_j’s Biological Test HDU - 5894 组合数学&&小球问题
题目链接题意:要在n个座位中选出m个给小朋友安排座位,并且保证每个小盆友之间至少要隔k个空位,问你有几种方法。思路:这个题确实不是很好理解,因为题目是一个环,如果是一个链的话很明显的可以用到插空法.这里我们可以就把问题抽象成链,那么起点就有n个.我们设两个小朋友之间的差为ai,那么可以得到如下的方程:a1+a2+a3+...am=n-m. 其中ai>=k 那么可以得到此方程原创 2017-05-15 15:49:39 · 538 阅读 · 0 评论 -
sdutoj 3896 HEX 思维+组合数
题目链接题意:问你从(1,1)到(a,b)有几种走法思路;这个题我们集训队的大佬提供了很好的思路,我们起始位置在(1,1)可以走到(2,1) (3,2)(2,2)坐标分别增加了(1,0) (2,1) (1,1) 我们可以将三个看成三个向量 对于要达到的目的(a,b)可以列出一个等式: x(1,0)+y(2,1)+z(1,1)+(1,1)=(a,b) 可以列出两个方程.x+原创 2017-05-14 11:28:08 · 373 阅读 · 0 评论 -
sdut 3895/第八届省赛C题 fireworks 杨辉三角 逆元求C(n,m)%mod
题目链接题意:给你n个烟花,时间 t和要查询的位置w,每一个烟花都是朝其两边传并消失掉,问你第t时刻w位置有几个烟花/思路: 省赛那天一直以为这个是个规律....我们首先假设一个位置有烟花,我们往下穿几次就会发现规律了11 0 110 2 0 110 3 0 3 011 04 0 6 0 40 1可以发现如果把原创 2017-05-14 11:14:58 · 539 阅读 · 0 评论 -
求C(n,m)%mod的方法总结(未更完)
1. 杨辉三角当n,m都很小的时候可以利用杨辉三角直接求。C(n,m)=C(n-1,m)+C(n-1,m-1);2.费马小定理假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p) 根据这个性质我们可以知道 a的逆元为a^(p-2),那么C(n,m)=n!/(m! *(n-m)!) =n!*(m!*(n-m)!^(p-2)) p为我们原创 2017-05-14 10:57:29 · 1556 阅读 · 0 评论 -
组合计数问题
这类问题主要是可以抽象成小球和小盒的问题,分为很多种,球不同盒同,盒不同,球相同等等. 圆(环)排列: (n-1)! 第一类斯特林数: S1(n,k) S_1(n,k) 表示把n个元素的集合分成k个环排列的方法数. S1(1,1)=1,S1(n,0)=0;S_1(1,1) = 1,S_1(n,0) = 0; S1(n,k)=S1(n−1,k−1)+(n原创 2017-09-13 19:09:05 · 1212 阅读 · 0 评论