青岛二中集训日报(D6)

今天是dp专题,虽然AC了5道题,不过感觉自己在dp方面的思路明显不足,加上专门的dp问题较为巧妙的转化,很难洞悉其中的矛盾,从而错误地认识了问题的关键,陷入错误的路线.

同时,dp思想也是很多具体问题的解决中必须的.

一般的dp,体现为最优化问题或计数问题两种形式.

对于最优化问题,普遍存在的矛盾是一类信息的限制和要求另一类信息的最优化的矛盾.一般要首先解决问题的不显然不直接与要求确定的答案之间的矛盾,其次是复杂度与时空限制的矛盾.特异性的内在矛盾决定了如何解决这两个问题.在特定情况下,存在与贪心等算法的相互转移.

对于计数问题,一般存在枚举全部情况并判定 "可行性"的"暴力"做法,这种做法一般不能通过表面的优化达到要求.在计数问题中,复杂度的矛盾,普遍的表现为枚举不可行情况与随之导致的冗余计算的矛盾,与大量枚举与情况内部规律被破坏的矛盾.一般要根据特定情况考虑,发现能够把大量枚举转化为数学计算/信息复用的内在规律,以及排除不可能的情况.在特定情况下,存在与数学问题等的相互转移.

dp的底层逻辑是利用问题的无后效性,把问题转化成自动机的形式,并在上面统计信息.一般处理方式灵活,不能依赖教条或者经验的方法.关键还是通过发现矛盾的方法,配合灵活的构造性的思维.dp的形式和方法往往只是问题的中间步骤或者最后步骤.

另外在套路地构造dp时也取决于问题的特异矛盾.一般地,包括维护信息与后效性,维护信息与需求信息之间的矛盾,维护信息内部本质不同的矛盾等.


CF913E

首先就可以发现题目本身有高度的自我限制,例如固定的 \(x,y,z\),以及较小的值域.因此可以直接利用这一点考虑构造全部情况.

这道题有一点构造的性质,不过可以也视作一个最优化.状态首先显然要记录当前构造的数是什么.发现可以简单地通过状态的的复合转移到下一状态.套用最优化问题的转移,可以同时解决最小化长度和最小化字典序的问题.

剩下的唯一矛盾就是构造方案不符合运算优先级的方案.现在这样设计,显然一个状态与另一个状态复合后的转移与优先级存在矛盾.可以想到按照运算优先级再增加一维,这时可以正常转移,此题较为简单,结束.


P6893

按照经验,离散的部分需要dp,连续的部分可以贪心.

首先讨论离散部分.显然的思路是把每个物体拆分,但是复杂度过高.其中显然对冗余信息的矛盾是主要矛盾之一.考虑把每个物体分 \(\frac{m}{w}\)份,在\(w\)较大时比较可行,但是若出现多个 \(w=1\) 就不可行.继续裁剪无用信息,从拆分的底层逻辑讲,离散的物品一般单价最高者最优,但是重量较小可能存在 "填缝"的情况,因此对于每个物品都要拆分.但是单价与重量直接的矛盾一旦规定重量相等,就可以因为重量一方的受限,改变这个矛盾,就贪心地取最高单价即可,既然如此,重量相等的物品完全是等效的,直接全部贪心取足够的最高单价即可.这样就能够优化到调和级数,直接背包就可以了.

然后讨论连续部分.发现其实就是在考虑多个二次函数的值最大值.考虑每次把所有物品取到一个相同的单价,一定是取了相同量下最优的一部分,因此考虑二分这个值,即可解决.

综上,这道题在考察一个拼接性质的题,按照不同部分不同的本质矛盾,进行不同处理.思路还算层层深入,一脉相承.


P10197

这道题是一道最优化问题,考虑限制与最优策略的矛盾.容易发现当忽略限制时,最优策略既是有序序列,直接贪心可以拿到24分.

仔细分析考虑转化这个策略.发现事实上在最小化的是相邻元素绝对差之和,在此基础上考虑与限制的矛盾,由限制点少,容易想到在限制点之间的区间进行填数.考虑这个填数过程,继承贪心的思路,一个区间的答案只与最大值与最小值有关,而减小区间长度总是最优的,因此考虑有序填数的过程,要么是填入新的区间,要么是在当前最大区间后面填数.这样的结果就是只存在相离或包含的区间,否则与贪心想法矛盾.

关于构造dp,发现区间的决策有明显的连续性,考虑区间dp,状态需要记录当前填满的点集,转移就简单了,分别考虑拼接与包含即可.

还是感觉思路很跳跃.但是分析最优化问题的矛盾与规律确实比较典型.


ABC305Ex

简单分析,最优化问题,限制是权值上界,最小化分段数.考虑这时一个取物问题,套路地考虑凸优化,发现极值点(最小化权值)可以计算,因此采用WQS二分计算.

考虑内层dp,求极值点需要 \(n^2\) 的dp,考虑切除冗余信息的方法,一般地,权值会指数级增长,因此只需要维护 \(nlogn\)级的信息即可,但是需要特判 \(a=1\) 的情况.


AGC056B

简单分析,作为计数问题,最先考虑可做性的矛盾,首先从\(x\)角度出发难以处理限制条件.发现导致计数困难的主要矛盾是多组 \(p\) 对应一组 \(x\) 和对 \(p\) 计数的矛盾.因此用构造思想转化多组\(p\)为一组,使用序的思想,发现可以钦定最大值依次放入最前,因此只需统计在这一条件下的合法 \(p\) 即可.

考虑限制条件与统计情况的矛盾,在没有限制时,最大值只能放在最前,而有了区间限制可以把最大值放在靠后位置,因此区间限制对计数过程的作用是提供了后放最大值的可能.

具体讨论,一个包含在 \(l,r\)区间之内的限制,可以让最大值放置后左端最大值放在\(l_1\)右侧,分别区间店铺即可.

posted @ 2024-06-17 21:28  youlv  阅读(36)  评论(0)    收藏  举报