模拟72
T1 Catalan的综合运用,对Cat的理解还不够深刻。
然后就是对于DP的运用了,DP的状态定义要选好,尽量摒弃多余的、无用的DP,仔细思考定义的DP数组的含义,要根据自己的定义选择自己合适的算法。
对于定义的DP一定不能模糊,一是不好调,二是会造成思维上的混乱,容易跑偏。
定义DP时多方面考虑,选择最适合转移、最适合优化的DP下手。
T3 无向图没有缩点!!!缩的是点双(不存在割点)或边双(不存在割桥),割点可能属于多个点双,割桥不属于任何边双。Tarjan缩点时要理解清楚。
对于特点图的判定,找规律后可以从二分图方向考虑,二分图这个思想还是很重要的(是时候该复习一下最大匹配了)。
算法尽量简单,能省就省,根据题中所述选择最简单的算法,如边权相同直接跑BFS求单源最短路。
复杂度的分析仍然是个问题。对于那些看似“$n^4$ $n^3$”的算法,其实并不会枚举那么多,正确看待复杂度。
点数、边数不同阶的时候,不能同等看待。
模拟73
T2 DP性质题,找性质可以从DP的状态入手,找一下有没有多余运算,适当的进行一下数学分析,不要盲目的暴力。
其实很多时候优化就是除去多余不可行解或者不优解的过程,就像搜索剪枝一样,分析它可能转移到的不可能状态或劣态,达到优化目的。
比如这道题,多余2个相连块的情况不可能优,证明就是用的数学不等式,数学还是很重要的喵。
模拟 74
T1 贪心题。这次贪心把我贪mengbi了,有时候贪心的更优性可能证明不出来,但是使用贪心,不会使答案更劣,这时候也可以贪心,并且能保证答案不会变差。这种贪心也很重要。比如说这道题,我们每次选择离当前所访问的点最近的右端点,的确不会使答案变优,但是我们这样选择之后,能选就选,如果我们出现了选择当前点后,它后面的点不能选的情况,说明它后面的这个点不优。因为如果我们想要选择后面的这个点,就必须舍弃前面的某一个点,但实际做的贡献跟贪心所得是相同的。因此该贪心不会使答案变劣。
T3 解法多种多样,启示也很多。关于二维偏序,不是狭义的$a_i
还有,联通块=点数-边数。
T2 神仙DP,这种题考试的时候真的想不出来,DP定义也是个困难。吸取一下skyh的讲题的思路。当我们发现顺着题目说的来构造模型不好构造的话,可以换个方向。就这道题,我们确定一个根节点来向下扩展,发现我们需要知道的信息太多,数组根本不能维护,状压$bitset$会炸内存,那我们可以考虑逆向来,给多颗树加上一个公共根节点形成一颗大树,这应该也是这道题的突破点。逆向思维还是挺重要的。