反思集

模拟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,并且以之为方向进行考虑。二维偏序常用的解法就是$sort$$+$$BIT$,排序使其中一维有序,$BIT$用来查询对答案的贡献,一定要深深理解$BIT$的应用,尤其是它动态维护的能力,这个动态思想很重要。关于这道题解法不少,尤其是莫队解法更妙。自己没打莫队,不过稍微理解了一下,大概就是努力将修改做成$O(1)$,好好考虑它的父亲及儿子存在不存在我现在的区间里,进行加减操作,其实加与减形状上差不多,就是互逆运算。主席树打法自己手打了一下,与树状数组思想类似,只是不需要动态维护和离线,在线直接查询就行。二维偏序这个方向好好积累一下,多想想我要固定哪一个端点,方便我查询另一端点,可以在草纸上写下来,画画图,加深印象以免弄混。

    还有,联通块=点数-边数。

  T2 神仙DP,这种题考试的时候真的想不出来,DP定义也是个困难。吸取一下skyh的讲题的思路。当我们发现顺着题目说的来构造模型不好构造的话,可以换个方向。就这道题,我们确定一个根节点来向下扩展,发现我们需要知道的信息太多,数组根本不能维护,状压$bitset$会炸内存,那我们可以考虑逆向来,给多颗树加上一个公共根节点形成一颗大树,这应该也是这道题的突破点。逆向思维还是挺重要的。

你可能感兴趣的:(反思集)