集训阶段反思 · Week1
Just_int_mian · · 个人记录
10.5 - 10.7
三天两场模拟赛,六天四场模拟赛。补题的速度要快起来了。
和题目有关的昨天写了很多了。现在写一些缺点吧。
贪心怎么写?
不会贪心。
贪心还是分很多种的,有 K 大这种的贪心(10.5 T2),有猜结论的贪心(10.6 T2)。很巧的是,我都不会。这就导致了模拟赛中严重的失分。所以这样的情况应该怎么避免呢?
要敢于猜结论。猜一个结论发现样例是对的,写就完事了。赛上证明一个贪心结论属实是太难了,10.6 T2 的贪心我到现在还没证明出来。
还有有关第 K 大的东西,貌似都能单独出一篇文章了。如果
第 K 大子集可以用一个四元组
当然 check 不一定是和
如果 check 的复杂度一般就和
计数 DP 怎么写?
我谔谔。
不管是计数 DP 也好组合计数也罢,我真的不会数数啊,,,
复杂度我也不会算,哭了。
先写一个惨痛的教训:若
计数 DP 真的是短板啊。计数我感觉也没什么技巧啊,就是一堆乘法原理一堆加法原理一堆容斥原理一堆状态设计叠在一起,只能多做题找找感觉了。
心态!!!
这两场比赛真的有点给我心态整崩了。T2 -> T2 不会 -> T1 不会。不可能是过了个国庆手感就生疏了啊。只能说调整好心态是非常重要的。但是呢心态这个东西又不能靠刷题取得,只能说是尽量地多打一些 CF 啊 AT 啊什么的,搞好一个比赛心态,这个任务确实比较首要。没有好心态做什么题也是白做。
事实上,我在想写大模拟或者说是骨牌那种码量比较大的题对心态有没有帮助。貌似得试一试了。
其它的反思后面再继续补充吧,心态一定要调整好啊。马上又要迎接新的两场模拟赛了。还是同样的,以崭新的面貌面对接下来的每一场崭新的比赛。
我们都有光明的未来。
10.8 - 10.9
本来以为能把 T3 打个
还是没有
先写点题目总结吧。
T1
还是比较板吧。主要是类似位运算+最短路的题已经做过很多了,有异或的,有与的,总而言之,套路都是改一位。
唯一想说的是本来以为早上写的做法均摊下来是
T2
构造题我也不会啊。
最开始看了一会连严格
在赛上只知道怎么把一个数放在另一个数后面,所以就想到了以此为基础的一个做法。找一串连续的数,把其最开始的一个数
所以把
这个神秘做法拿了
正解是类似于快排的神奇东西,通过和快排相同的分治来让多个操作可以同时进行,非常有趣的想法,恍然大悟后感觉很不错。
T3
原来不是计数 DP 我也不会做啊可恶。
赛上
最后
正解一点也不套路。可以(但是很难)发现在每一轮操作时抽到的牌可以被划分为两类。一种是垃圾牌(雌雄双股剑,方天画戟),一种是好牌(贯石斧,诸葛连弩),抽到垃圾牌就丢掉然后抽下一轮,抽到好牌就收入囊中然后结束游戏。
这东西可以稍微理性一点地感性理解,如果
这也就是在说,好牌的定义是有一个阈值的,而这个阈值会随着剩余牌数的增大而减小(意思是剩的牌越少阈值越大)。这个也可以稍微理性一点地感性理解。在抽
那么就可以设
不写转移式了,因为如果想到这里就已经比较简单了。(想到这里本身就是难点了啊。)
转移式看起来是
这题多少带一点神奇贪心思想,但是我还是不会贪心啊可恶。而且写这题总结时是不是用了太多感性理解了啊。
T4
好题,性质给我听的一愣一愣的,但是不太会。赛上只知道可以根据边的值域来建生成树,没想到还可以用一个前缀值域然后做差分。
想到这个前缀值域过后就只需要维护连通性了,又因为子图和全图的 MST 的性质,可以把部分分做法优化到
10.10
打得还行,但是这个还行只是因为没有挂分并且多打了一些部分分然后排名就比较高,整体的提升空间还是很大的。
T1
啧。想了 10 min 贪心感觉好像不行就在想 DP 了。然后发现可以做,还是树上 DP,于是理所当然的想到了线段树合并。
到底哪里理所当然了啊!真的是蠢到离谱了才会把简单的树形 DP 复杂化成线段树合并的吧!
然后突然灵光一现了,发现这个东西不需要合并,因为它合并的一定是存储不相交区间信息的线段树,也就是每个点就只有一个状态,所以可以直接用普通线段树。
所以都想到这里了为什么不能直接用树形 DP 呢?啧,太傻了。
题目本身很简单,但是因为这个东西直到比赛开始 1h 才调完。在想,如果把这部分写线段树的时间让给 T4 而 T1 就写简单的树形 DP,能不能在赛上把 T4 想出来或者多拿点分呢?
所以说啊,又多了一条新的心得体会。想到做法时不要立刻去写,因为不仅可能正确性有问题,用一种更简单的解法代替可能会节约更多时间。
T2
简单笛卡尔树题,确实比较一眼,但是和 T3 的杜老师说的一眼不是同一个一眼,是数据结构特有的一眼。唯一可以说的就是卡常,但是我不想提这个让我有点伤心的事情。
T3
我不会容斥计数啊。
计数题真的都好难啊。这个 T3 看起来就像一道加强版的错排问题,感觉会比较难。赛上明明有两个小时去想后面的题,但是什么也没有想出来。
具体做法也很神奇,就是把
挺难的,我还是不会数数题。
T4
哇,思维题。赛上打了一个记忆化搜索+区间 DP。
感觉正解就是猜结论+大分讨啊,练点计数题就去补一下吧。
10.12
爆完了。先把总结给写了吧。
T1
计数题练了和没练一样,虽然本来也没练多少。
一直在往容斥的方向考虑,状压则是想一想就弃掉了。但是这也并不能怪谁,只能怪我两种都学艺不精。本来最多 10 min 就可以看出来那题不能用容斥,因为对于一个不合法的集合,它的子集不一定同样不合法,这就导致
正解是数位 DP。不是学了很久的知识点,果然放在非专题里就做不出来了。之前学数位 DP 的时候感觉这东西应该很好辨别,T1 的限制也特别像数位 DP,甚至正常人应该是一眼就想到数位 DP 的,然而我大抵是精神不太正常了。
正解就是简单数位 DP 加状压
T2
为什么呢?
不知道在哪里多出了一段做过类似的题的记忆,也不知道是不是错觉。赛上想到了拆贡献,每个数的正负贡献取决于其被合并的次数以及要对每一种正贡献数量算一个
然而实际上好像打表也是可以猜到结论的,但是我并没有想到去找规律,其实有时候这也可以说是一种有效的做法。
然后可以分别把与前
然后这个题就做完了。
其实本来想看能不能做到单组询问
T3
看着就是比较恶心的题。怎么说呢,就是那种不会考很复杂算法但是很难想的题。哦,想起来了,叫思维题。
赛上没想多久就去看 T4 了,看完 T4 又看了看这题的数据,感觉树的部分分还是很好拿的,就开写了。
结果写了 5KB...原因是并没有想到树的最大方案是在
正解说难想也不难想,也是比较套路的。只要发现树的最大方案在
树上做法出来过后图上做法也很显然了,就是贪心地从后缀找一棵最大生成树然后跑上面的树上做法。
虽然这一整段都感觉透露着这道题不难想的感觉,但是赛上还是没有思路。不好评价了。
T4
哇,还有黑科技数据结构。
本来想过 bfs 序拿点部分分,结果发现要做一堆容斥啥的就没有写。没想到正解还真的跟这玩意有点关系。
看着
小数据结构题,看起来没什么意义,好像实际上也没什么意义。会神奇 bdfs 序的就会做,不会的就不会做,但是好歹也算学了点新东西吧。
总结
四道题都分析了一遍了,那就罗列一下问题吧。
计数
还是不会。练了也不会,因为计数是很多变的,有可能是容斥,可能是状压,可能是数位 DP,但是肯定都和 DP 脱不了关系,所以归根结底还是 DP 练少了。
套路
这一次记住了合并操作可以建树,那下一次呢?很有可能有什么新的套路,但是我也不会,然后又拿不到什么高分。这样看来,不仅是 DP 练少了,什么东西都练少了。
心态
写过很多遍的问题了。这次心态要比上次好一点了,但还是出现了无能狂怒的情况,删了写的 5KB 的没用代码类似的。但是时间安排还是比较合理的,所以问题主要就是上面两点。
总感觉这模拟赛是越来越难了。就昨天的模拟赛简单了一会。感觉自己的发挥不是特别稳定,还记得上次 NOIP 模拟赛 T2 的数数题都能 A,现在 T1 的数数都不行了。总之还是要加练了。平时休整日就多写点题吧,希望以后不会再被 T1 数数卡了,然后多见一点套路就更好了。
我们都有光明的未来。
Week 1 总结的总结
这周怎么不止七天啊。
总算是进入了停课集训的阶段,可能要辛苦很久了。这周最大的收获就是真正找到了自己最最最薄弱的点:数数。两次考炸都是因为 T1 放了数数题。套路也见了一些了,回过头来看有以下这些:
- 神奇 DP -> 网格图最长路 -> 类似于整体二分的分治
- 第 K 大 -> 二分/堆,看
K 的范围,check复杂度与状态设计 - 背包可以合并物品
- 三元组 DP 状态记两个,
n \leq 3 \times 10^4 可考虑O(n^2) + 神奇状态优化 - 容斥 -> 手玩求状态交集
- 位运算+图论 -> 一次变一位
- 神秘操作可以进行简化
- 错排?容斥!
- 类似于哈夫曼树的合并 -> 建树
- 树上做法转图上做法 -> 尝试找生成树
- 维护连续子节点/固定深度的点 -> bfs 序
- 黑科技 -> bdfs 序
-
有关题目和知识点本身的已经写了很多了,无非都是数数、贪心、套路什么的。但是跳出逻辑之外的,比赛时的一些问题好像还没有写。
这周应该是犯过低级错误的。比如某次考试的 T4,本来以为所有题都是 1 GB 就没有看到它特殊的数据范围是 32 MB,然后导致暴力挂了
即使如此,比赛策略却完善了不少。例如可以根据 T1 估计本场难度然后进行合理时间分配(当然其它题也是要看的),如果是数数题这场可能就有点难了,或者 1h 都没做出来那么可能也有点难了。部分分方面能拿多少就拿多少。事实上我好几次都朝着拿高点的部分分想,但是那些简单的性质我却总是想不到,所以需要性质的部分分要认真推性质,可能推着推着就想到正解了。实在没有性质可发现时,打打表找找规律或是猜结论再去验证都是还行的手段。如果这些都不行,那就出去转转,说不定就想到了呢,而且还可以散散心,防止心态爆炸。
另外,说到心态,心态一定要稳定,只有心态稳定了,发挥才能稳定,太过消极的心态和过分骄傲的心态都是不可取的。(当然我现在只可能太过消极,没有过分骄傲的资本啊。)在每一场比赛中都只记住得到的知识、学会的套路和掌握的策略就好了,没必要老是去想上一次的成绩,每次打完模拟赛再和之前作对比来进行复盘总结,吸取教训。
找到弱点了就要努力去击破,现在正在造一张计数题题单,相信计数能力一定会有提升的。如果再有哪次还是这种名次,一次加练五道计数题,这也算是一种激励和警示吧,期待着可以完全拿下一场模拟赛,先暂时朝着这个目标前进吧,都已经把暂时停停whk作为代价了,不拿出点成绩可说不过去呢。计数,贪心,结论,DS,图论,现在就来迎接你们。
我们都有光明的未来。
注释
1.“实际上,ny_fengzixuan 告诉我如果每次都把枚举的其中一个数看成
感谢 nk_fzx_sd 提供证明。感谢 nk_fzx_sd 教了我怎么打出
2.又是喜闻乐见的复杂度证明环节。所有二进制下长度为
这个东西就等于
不是特别感谢 nk_fzx_sd 提供证明,因为这个证明把问题复杂化了。感谢 nk_fzx_sd 教了我怎么打出
感谢 wxr_ 提供另一个证明:每一位上的