计数题目合集
1|0CF1342F
很巧妙的一个计数题。
原题目等价于构建一个递增序列
先考虑一个朴素 dp,设
考虑优化这个 dp,上来发现
一个常见的 trick 是把值域和状态互换,考虑这样做的可行性。显然如果
考虑转移。每次去划分一个集合,设当前状态为
2|0CF1392H
期望好题!
下文中我们称鬼牌为 joker。
首先注意到每轮抽到 joker 后的局面都是一样的,因此不妨先考虑每两张 joker 之间的答案是期望是多少,那么大概有如下式子:
注意到后面那一堆显然有递推关系,令
可以线性计算。
接下来考虑期望抽的轮数。 注意到牌和牌之间是无标号等价的,那么设
那么此时可以写出转移式,
所以答案即为
看了一眼题解区发现对于
3|0CF1616H
超级计数好题,主打的就是一个敢设状态。
首先看到两两异或建出 01-trie 套路变成按位考虑,下文设
尝试一个 dp,设
怎么办?考虑能不能继续往状态里扔垃圾。我们再加一个点,
现在考虑转移,对于当前的位置
-
的第 为 。-
。这个时候只能选一侧子树,然后合并答案,有
。 -
。此时对于每颗子树的子树内任选,对于两颗子树之间,一定只能是
配对 或 配对 ,转移即 。
-
-
的第 为 。-
。此时子树内任选,有
。 -
。此时可以随便选,有
。
-
注意要考虑一些空集的边界情况。
4|0CF1503E
一道比较平凡的计数,感觉比上面的简单啊为啥 3100。
看到这种奇怪的计数一般考虑转化充要条件。一个首先的观察是,每一行黄色的连通块必须接
不妨假设现在黄色围成了两个连通块,然后现在我们去枚举两个峰的位置,有一个直观的理解是,从四个角走到峰,把路径和
蓝色同理。现在我们得到了一个
注意两个都有两个峰的时候可能会算重,要容斥一下,具体来说是做第二遍的时候强制两个峰不交于一点。
5|0CF1608F
首先考虑 dp 的状态应该有什么,那么显而易见的是要把位置
怎么做?我们考虑把贡献放到
, 。 , 。 ,枚举 与 , ,其中 是一个经典的组合问题,把 个球放进 个空盒子,每个盒子至少有一个球的方案数。注意这里还需要一个组合数 表示从 个位置中选出 个。
这样做的话复杂度
怎么办?考虑改变状态,重设
, 。 ,此时考虑 是否出现过。- 出现过,
。 - 没出现过,
。
- 出现过,
,枚举 ,那么有 个数对 产生影响。枚举新的 ,有转移 。
注意到上面的转移是一个类似于斜对角线转移的东西,那么我们可以去考虑一种前缀和优化,将后两维的加和作为第二维,我们惊奇的发现此时后面的可以做前缀和优化,最后转移过去时除掉系数
时间复杂度
6|0CF1621G
好厉害的题目!
统计所有的上升子序列不好做,那么套路的转化成对每个位置考虑其对答案的贡献次数。接下来去找充要条件。通过一些简单的观察,我们发现对于每个位置
然后我被卡在这里了/cf。
下面是一步我没看出来的容斥。我们把经过
现在问题转化成了经过两个定点的上升子序列个数。但太棒了,这个我不会做。
再次回顾性质,我们发现
时间复杂度
7|0CF1810G
小清新计数题,有很大的启发意义,我上来就被干烂了/cf。
首先考虑一个 naive 的 dp,设
考虑去改变我们求最大前缀和的方式。倒序考虑,我们惊讶的发现对于一段后缀,其于整个序列的最大前缀和有贡献的部分即为其最大前缀和!
证明是容易的,考虑到每在前面插入一个数实质上是增加一个前缀和并把所有已有的前缀和加上他的值。
至此我们可以设计出一个状态数是
如何统计答案?我们发现,对于一段后缀,若其最大前缀和等于
这个最大前缀和的转化感觉很有意思,对于一部分题目可以直接砍掉一些复杂度,很有启发意义。
8|0P9479
首先我们考虑
现在我们考虑一个点可以被插到哪里。
- 插到一条边上。
- 插到一个节点下面做叶子。
- 插到其它地方,并为其钦定一个
的节点做父亲。
注意到
-
是一个被钦定的父亲。直接把
填进去即可。 -
不是一个被钦定的父亲。对于加到边上和叶子上是好求的,具体而言,点数为
,边数为 ,直接以这个系数转移即可。如果说要为 钦定一个父亲,那么直接枚举一个不在 中的数,并将其插到任意一条边上,钦定为 的父亲,改变其状态为已钦定即可。
9|0P4707
这个猛。感觉难点在于想到可以做 Min-Max 容斥,后面 dp 设计状态和拆组合数的那一步也很精彩。
考虑此时的
注意到我们实际上是可以快速求
还记得那个式子在期望意义下成立吗?那么我们套上 Min-Max 反演,那么有下面的式子。
考虑 dp。观察原式子中哪些东西需要塞到状态里。注意到一个有趣的事情是对于固定的集合大小,其前面的系数总是固定的,所以我们可以枚举集合大小后把后面那一坨组合数和系数丢到前面,最后乘回去。所以上来有一个 naive 的想法是设
考虑优化状态。注意到
继续考虑转移,延续上面的想法,我们试图构建一个
考虑把一个数加入集合以后变成了什么,首先一定会让系数乘上
那么我们再加一维
初始状态是
10|0P4491
考虑二项式反演。首先考虑钦定
然后考虑二项式反演,设
那么有
拆开组合数,然后合并并化简,即可得到下式。
很明显的卷积形式,对右式 NTT 即可。
11|0P5591
整除下取整我们是不好做的,我们考虑把整除拆掉,
拆掉以后开始化简原式,不难得到下面的式子。
先把
后面的东西显然可以单位根反演,同样拿掉系数,反演后化简可以得到下式。
后面的东西已经和
换元,令
然后把
__EOF__

本文链接:https://www.cnblogs.com/-Complex-/p/17573512.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话