计数类 DP
P9522 [JOISC2022] 错误拼写
牛魔计数题使我旋转。
主要说一下分析思路:
根据字典序的比较方式我们可以转化一下
字典序暗示我们要从后往前 DP,于是设
这个约束就是对于一段
于是设
计数题好难。
P2051 [AHOI2009] 中国象棋
即每一行、每一列最多有两个棋子。
在转移的时候,我们需要依赖于上一层的状态,但往往我们无需清楚每个地方的状态具体是啥,只需知道某种状态的个数,然后使用排列组合计算。
设
枚举这一行放几个炮直接转移就行。
P3158 [CQOI2011] 放棋子
发现维护个数比较困难。
发现每种颜色都是相互独立的,区域的划分依据是完整的行和列。所以可以考虑设
P10982 Connected Graph
正难则反,我们求
一开始为了不计算重复,我设了
一种可行的方法是:钦定一个点作为划分依据。
比如以
CF1989E Distance to Different
观察到
设
我想到这后还一直在想怎么保证每种数都填进去了这
所以第二维只用开到
自己实在太唐了。
CF1585F Non-equal Neighbours
感觉要记录
考虑容斥,钦定有
于是有一个朴素的 DP,设
然后发现我们需要的是段数的奇偶性,于是将状态改为
发现转移式里不好优化的是一个
CF1909F Small Permutation Problem
很厉害的题。
先考虑 Easy Version。一开始编了一个 DP 做法,但好像不太对。
第一步转化就是将
考虑 Hard Version,我们可以将一段
[ARC180C] Subsequence and Prefix Sum
发现
一旦前缀和出现了
一开始想用最小表示法,但不会 。
发现自己智力不够,思维混乱,我们只需再记录
反思:思维混乱,在计数题中是大忌。要学会归纳各种情况,减少复杂的分类讨论,规约为简单的问题。
P9131 [USACO23FEB] Problem Setting P
先考虑状压出每道题的状态,状态相同的单独考虑。然后思考转化判定条件:其实就是满足前一道题是后一题的子集。
那我们设
一个 Trick:将状压后的数折半,分成前后两部分。
设
有一个大神 DP:考虑优化枚举子集,考虑每次加入一个元素,按
设
- 下一步走到的集合不选:
- 下一步走到的集合选:
反思:转化判定条件,配合一些 Trick 的使用。
【NOIP Round #7】排列计数
很好的容斥 DP 题。
首先可以想到将极长的公差为
我们可以将一些连续的
考虑
于是
反思:想到容斥之后没有往 DP 上想,也没有在缩成一段这个点上继续研究,而是想着上科技,或者硬着正面求解,淦!
[ARC105F] Lights Out on Connected Graph
考虑枚举左部点,然后计算联通的方案数。
但是不会计算!这个东西你一看还是容斥好嘛。
钦定那个编号最小所在的联通块和其他不联通,然后容斥。
设
反思:对容斥计数还是不熟悉,放到图上就想不到了。
[ARC178D] Delete Range Mex
看中文题面看错题了,看英文就发现看错了,怎么回事呢?
得仔细挖掘性质,首先删肯定是从大到小删。其次,要是想删掉一个数
然后我们时光倒流,考虑在空隙
若
若被删了,则分插在左右两边讨论,可以前缀和优化到
初始化分
反思:需要努力挖掘性质的计数题,时光倒流,不太一样的区间 DP 写法。
[ARC176C] Max Permutation
还是建边,这样每个点只能满足最小的
因为是排列,所以每个
按
不知道对不对。
算了按别人的做法写一下吧。
首先仍然是建图,但我们现在考虑从
反思:计算排列可以从填数角度入手。
[ARC169C] Not So Consecutive
设
第一个没填
时间复杂度
但是我写的太shi了,还过不去样例。不应该把
反思:要寻找实现简便的方式写代码。
[ARC167C] MST on Line++
将边权为
考虑 kruskal 的过程,这只和边权的相对大小有关,所以将
考虑如下的子问题:
且 时有边,求不形成环的情况下最多能选多少条边。
设
怎么求
而所有
枚举一个
反思:步步紧凑的计数题,难度还是灰常大的。和某些算法要解决的问题相关的题目,可以从算法的过程入手。
[ARC067E] Grouping
按组的大小从小到大考虑。
设
时间复杂度
P2523 [HAOI2011] Problem c
tangsir题。
什么时候合法?就是
直接设
P3255 [JLOI2013] 地形生成
先考虑第一问,我以为第一问不能直接算答案,但其实是可以的。
按高度从大到小插入。
如果没有相同高度,则
第二问,考虑将一段高度相同的山拿出来 DP。设
P4859 已经没有什么好害怕的了
二项式反演模板题。
首先转化成恰好有
将
设
最后套二项式反演的公式,注意
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)