随笔分类 -  ACM / 数论 组合数学

1
摘要:原题链接 考察:组合数学 错误思路: 隔板法忘光了,没做出来= = 思路: 很容易想到是分解质因数,然后将质因数安排在$n$个位置上.这里比较容易想到隔板法,但是注意常规隔板法是需要$x_i>=1$,所以我们需要将$x_i+n-1$.还有一个就是质因数排序问题,注意到案例三$5,7$做一次隔板少了$ 阅读全文
posted @ 2021-09-17 02:07 acmloser 阅读(31) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:组合数学 思路: 我们不必模拟每次具体去掉什么.因为去掉的蜡烛只能在熄灭的蜡烛左右俩侧.对于区间$2$,每次在左右端点选一个去掉,方法数是$2^{8-4-1-1}$.但是区间1,3是特殊的,因为只有一种方法. 计算完区间内部的方法后,就是计算区间之间的方法数.这里不能用插空法.是先有 阅读全文
posted @ 2021-08-08 18:24 acmloser 阅读(39) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:组合数学+思维 思路: 如果只考虑一行的和是比较容易想到的:假设该行对应的$s$为$x$,如果$a%x==0$,那么求出$sum = \frac$的个数即可.如果有多行,就统计多行的和$x$.我们直接统计和的个数即可. 特判$!a$的情况,此时只要一个因子为0,其他任意值. ##Co 阅读全文
posted @ 2021-07-27 09:47 acmloser 阅读(47) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:组合数学 错误思路: DFS枚举 正确思路: 直接枚举长度是$106$的数是不可能的.但是注意到和很小,最多是$9*106$.假设$x$个$a$,则有$n-x$个$b$,如果当前和合法,那么就是两个数添位置的简单组合数学 ##Code #include <iostream> #inc 阅读全文
posted @ 2021-07-25 19:09 acmloser 阅读(20) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:计数dp 思路: 这dp真心还算好想,可本蒟蒻是fw.令$f[i]$为首项为$a[i],长度为a[i]+1的个数$ (1) a[1] = k-1的幸运序列.\(f[i] = C_{n-i}^{a[i]}\) (2) 拼凑的序列,这里不是区间dp,我们考虑一个幸运序列至少可以拆成俩个序 阅读全文
posted @ 2021-06-28 14:38 acmloser 阅读(25) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:抽屉原理+思维 思路: 一共n个数,如果存在%n==0的数,那么直接输出.如果不存在,余数在1~n-1之间有n个数.根据抽屉原理,必然存在两个余数相等的数(但不一定存在两个相加==n的数).余数相等有什么用呢?说明(r-l)%n == 0.这里就可以用前缀和求解. ##Code #i 阅读全文
posted @ 2021-06-13 15:15 acmloser 阅读(26) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:组合数学 直接给我梦回高中排列组合,考的是插空法,我完全没印象.... 思路: 先排列m个树苗,方法是$m!$,接下来先将空插到树苗中间,此时还剩下$n-2m+1$个空位,这$n-2m+1$个空位分为m+1组,这里可以用隔板法求解,求组合数我求麻烦了点,可以直接求. ##Code # 阅读全文
posted @ 2021-06-12 13:24 acmloser 阅读(56) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理 思路: 这个容斥思路应该很经典了,硬币购物也是这个思路. 如果不考虑限制,方法数就是隔板法求解:\(C_{n+m-1}^{n-1}\),但是有限制的情况下就不能这么求解. 直接求不好做,考虑求补集.至少不满足一个条件的情况,至少不满足两个条件的情况容斥即可.但是至少不满足一 阅读全文
posted @ 2021-06-12 01:05 acmloser 阅读(44) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:组合计数 思路: 有两种推到最后$C_{r+l+k}^k$的方法.主要思想就是构造严格单调递增的序列. 方法一: \(L<=a_1<=a_2<=a_3<=...<=a_k<=R\) 如果直接求的话,需要讨论用几个数填满k个位置,这就是相当于隔板法.但是k范围太大,难以预处理此方法不可 阅读全文
posted @ 2021-06-11 10:56 acmloser 阅读(43) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:组合数学+gcd 思路: 不考虑共线情况,总的方案数是$C_{n+m}^3$,考虑共线的话,直接求共线的方案数比不共线好求.那么我们就利用容斥原理即可. 对于共线的三个点,如果确定了起点和终点,中间点的取法就是gcd(长,宽)-1.对于共线,我们以长宽分类,求当前长i,宽j的三角形个 阅读全文
posted @ 2021-06-11 01:25 acmloser 阅读(39) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:组合数 思路: 类似高中数学排列组合题....我是fw,还以为是dp,结果就是简单的求组合数....分为放在b,d两类. 排列数这里用的递推方式,所以没用乘法逆元. ##Code #include <iostream> #include <cstring> using namespa 阅读全文
posted @ 2021-06-10 22:32 acmloser 阅读(33) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:计数dp 思路: 隔板法的模板题,适用于求n个苹果分给k个盘子,且每个盘子不为0的排列数. 实际是求$C_^$.需要高精 ##Code #include <iostream> #include <cstring> using namespace std; typedef long l 阅读全文
posted @ 2021-06-10 16:51 acmloser 阅读(30) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:计数dp 思路: 虽然之前接触过计数dp,但是碰到这种题第一反应除了组合数之外毫无想法,今天学计数dp才发现不止组合数这一知识点. 有两种方法.以不同的划分状态依据. 方法一: 定义 f[i] 为i头牛并排站的方案数.以最后一头牛是什么品种来划分.如果最后一头牛为A牛,则剩下的i-1 阅读全文
posted @ 2021-06-10 15:35 acmloser 阅读(83) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:组合数学 思路: C[i][j] = C[i-1][j-1]+C[i-1][j],注意拿当前数+不拿当前数,和分苹果的划分方式不一样.当C[i][j] = 0,Sum[i][j] = 1,求前缀和i、j范围必须相同. 1 #include <iostream> 2 #include 阅读全文
posted @ 2021-03-04 23:32 acmloser 阅读(64) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:计数dp 错误思路: 以最后一个数来划分...f[i][j]表示选i个数,总能量为j的方案数 f[i][j] +=f[i-1][j-k](0<=k<=j)k表示最后一个数是k. 此思路错在会计重. 正确思路: 按照集合中最小的数是0和>0来划分.f[i][j]表示和为i,数个数为j的 阅读全文
posted @ 2021-03-01 16:26 acmloser 阅读(77) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理+完全背包+计数dp 本蒟蒻是打死都想不到怎么用容斥原理... 错误思路: 乍看一下是多重背包,时间复杂度80*105*103(采用二进制优化)显然T了 正确思路: 采取完全背包预处理的方法,时间复杂度105 ,求出不限数量的取法.答案就是所有取法-不合法的取法.这里就可以想 阅读全文
posted @ 2021-02-12 17:23 acmloser 阅读(43) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:欧拉降幂+中国剩余定理+lucas求组合数 思路: 本道题的答案求出幂后快速幂一下即可,所以主要是求幂,由欧拉降幂可知,我们的幂是需要%phi[mod]的.但mod=999911659,是一个质数,mod-1后是一个合数.设此合数为M,我们需要找的就是组合数和%M.但本题直接求组合数 阅读全文
posted @ 2021-01-30 16:03 acmloser 阅读(70) 评论(0) 推荐(0) 编辑
摘要:原题链接 思路全是看算法竞赛进阶指南,我自己是不会做这题的... 很详细的题解GO 解释一下为什么答案要乘上多重集排序的公式. 假设一个序列 2 3 4 5 6 1. 我们将5和 3互换,就可以得到 2 5 6 1和 4 3两个自环,答案的Fx*Fy是将这两个自环整理为有序的序列.形成 1 2 5 阅读全文
posted @ 2021-01-30 11:51 acmloser 阅读(96) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:卡特兰数 错误思路: 将答案当成卡特兰数的前缀和.这种答案是到达i点后,机器人完全不动,但此时可能步数还未用完 正确思路: 机器人向右是卡特兰数的向右,机器人向左是卡特兰数的向上.这就是模拟进出栈,y=x上方代表出栈数>入栈数.但这里我们还需要计数不走的方法数 设我们向右走了a步,总 阅读全文
posted @ 2021-01-30 00:10 acmloser 阅读(56) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:卡特兰数 错误思路: 利用Cn2n /n+1 的公式求解.本蒟蒻没搞懂Y总推的公式,这个公式是在取模意义下,求(n+1)的逆元再求.而不是求完组合数/n+1... 如果是累加的话,需要每个都求n+1的逆元.但是这道题,不能用这个公式,因为与100一起求exgcd的数未必gcd=1,如 阅读全文
posted @ 2021-01-29 20:38 acmloser 阅读(81) 评论(0) 推荐(0) 编辑

1