随笔分类 - 数学方法 -- 组合计数
摘要:【洛谷2791】幼儿园篮球题(第二类斯特林数,NTT) 题面 "洛谷" 题解 对于每一组询问,要求的东西本质上就是: 如果没有后面那个部分,就是一个范德蒙恒等式,所以就要把这个直接拆掉。 然
阅读全文
摘要:【51Nod1769】Clarke and math2(数论,组合数学) 题面 "51Nod" 题解 考虑枚举一个,枚举一个,怎么计算对的贡献。 把拆掉,维护一个长度为的数组,表示,对于
阅读全文
摘要:[HNOI2019]多边形(模拟,组合计数) 题面 "洛谷" 题解 ~~突然特别想骂人,本来我考场现切了的,结果WA了几个点,刚刚拿代码一看有个地方忘记取模了。~~ 首先发现终止态一定是所有点都向连边(看样例图解就知道了) 那么大力猜想一下第一问的答案一定是和号点直接相连的边
阅读全文
摘要:【BZOJ5323】[JXOI2018]游戏(组合计数,线性筛) 题面 "BZOJ" "洛谷" 题解 显然要考虑的位置只有那些在中不存在任意一个约数的数。 假设这样的数有个,那么剩下的数有个。 枚举时间,那么强制在时刻放下数中的最后一个, 那么这样子的
阅读全文
摘要:【BZOJ5305】[HAOI2018]苹果树(组合计数) 题面 "BZOJ" "洛谷" 题解 考虑对于每条边计算贡献。每条边的贡献是。 对于某个点,如果它有一棵大小为的子树的话,考虑方案数。 首先要从剩下的个点中选出个点作为这棵子树,那么选
阅读全文
摘要:【UOJ 450】【集训队作业2018】复读机(生成函数,单位根反演) 题面 "UOJ" 题解 似乎是爷的题。 的时候,随便怎么都行,答案就是。 的时候,可以做一个,设表示前个复读机选了个时间的方案数。
阅读全文
摘要:【BZOJ5416】【NOI2018】冒泡排序(动态规划) 题面 "BZOJ" "洛谷" "UOJ" 题解 考场推出了就是两个上升子序列,并且最长下降子序列长度不超过。。。然后大力暴力状压混了分。。。这个结论并不是很难证明,考虑一下冒泡排序的过程就好了。 实际上
阅读全文
摘要:【BZOJ3142】[HNOI2013]数列(组合计数) 题面 "BZOJ" "洛谷" 题解 唯一考虑的就是把一段值给分配给天,假设这天分配好了,第天是,假设。那么这一种分配方案的贡献就是。 而分配方式一共有$m^{k 1
阅读全文
摘要:【BZOJ4005】[JLOI2015] 骗我呢(容斥,组合计数) 题面 "BZOJ" "洛谷" 题解 "lalaxu" cpp include using namespace std; define MOD 1000000007 define MAX 3000300 void add(int &x
阅读全文
摘要:【BZOJ4830】[HNOI2017]抛硬币(组合计数,拓展卢卡斯定理) 题面 "BZOJ" "洛谷" 题解 暴力是啥? 枚举的次数和的次数,然后直接组合数算就好了:$\displaystyle \sum_{i=0}^a{a\choose i}\sum_{j=0}^{i 1}{b\ch
阅读全文
摘要:【Luogu4931】情侣?给我烧了! 加强版(组合计数) 题面 "洛谷" 题解 "戳这里" 忽然发现我自己推的方法是做这题的,也许后面写的那个才是做原题的QwQ。 cpp include include using namespace std; define MAX 5000010 define
阅读全文
摘要:【Luogu4921】情侣?给我烧了!(组合计数) 题面 "洛谷" 题解 很有意思的一道题目。 直接容斥?怎么样都要一个平方复杂度了。 既然是恰好对,那么我们直接来做: 首先枚举对人出来,然后枚排座位出来$\displayst
阅读全文
摘要:【BZOJ2281】[SDOI2011]黑白棋(博弈论,动态规划) 题面 "BZOJ" "洛谷" 题解 先看懂这题目在干什么。 首先BZOJ上面的题面没有图,换到洛谷看题就有图了。 不难发现都相邻的两个异色棋子放在一起的时候,此时的先手无论怎么动,后手直接把棋子靠上去,这样子一定是先手先无法移动。即
阅读全文
摘要:【BZOJ2227】[ZJOI2011]看电影(组合数学,高精度) 题面 "BZOJ" "洛谷" 题解 这题太神仙了。 首先$K include include using namespace std; inline int read() { int x=0;bool t=false;char ch
阅读全文
摘要:【BZOJ2425】[HAOI2010]计数(组合数学) 题面 "BZOJ" "洛谷" 题解 很容易的一道题目。 统计一下每个数位出现的次数,然后从前往后依次枚举每一位,表示前面都已经卡在了范围内,从这一位开始比目标小。 对于长度小于当前数的个数,我们可以默认它们有前导零就行了。 cpp inclu
阅读全文
摘要:【BZOJ2111】[ZJOI2010]排列计数(组合数学) 题面 "BZOJ" "洛谷" 题解 就是今年九省联考的弱化版? 直接递归组合数算就好了。 注意一下模数可以小于,所以要存一下乘了几个零才行。 cpp include include using namespace std
阅读全文
摘要:【BZOJ1856】[SCOI2010]字符串(组合数学) 题面 "BZOJ" "洛谷" 题解 把放一个看做在平面直角坐标系上沿着正半轴走一步,放一个看做往轴正半轴走一步,最终的重点就是,限制就是不能到达上面的部分。 发现这样不好算,我们先考虑一个另外
阅读全文
摘要:【BZOJ1485】[HNOI2009]有趣的数列(组合数学) 题面 "BZOJ" "洛谷" 题解 从小往大填数,要么填在最小的奇数位置,要么填在最小的偶数位置。 偶数位置填的数的个数不能超过奇数位置填的数的个数。 好的,卡特兰数。 诶,woc,我不会卡特兰数啊。行,来学一下。 $H(0)=H(1)
阅读全文
摘要:【BZOJ1227】[SDOI2009]虔诚的墓主人(线段树) 题面 "BZOJ" "洛谷" 题解 显然发现答案就是对于每一个空位置,考虑上下左右各有多少棵树,然后就是这四个方向上树的数量中选棵出来的方案数的乘积。显然离散化之后对于答案没有任何影响,所以直接离散化。 然而这样的点数还是$O(n
阅读全文