省选集训考试总结
拆解问题使其变得简单,如乌龟一题可以把两只乌龟分开考虑。
对于区间求某一个函数使其满足一个条件时,如果区间长度不大,可以考虑算出前缀答案和计算单点答案,如路灯一题中可以先计算 1~l-1 的答案,再计算 l~r 单点的答案 。
对于构造题,可以比较目标状态和当前状态的差异,观察操作是否具有可逆性,如天元超常一题中可以发现操作有可逆性且比较差异是简单的。
把二元组(尤其是有明显提示的)拆成两点之间的边。
可以把问题倒着考虑,比如玩游戏一题中可以把选定点到 1 看成 1 到选定点,同时确定操作是否有可逆性。
在数据范围中有一个数据特别小的时候,可以以那个数据为突破口,如状压 dp 等。
对于一个和给定区间的左右端点有关,左右状态可以合并,且要求支持修改的问题,可以考虑线段树,如石头一题。
如果一个问题具有可逆性且顺序考虑十分复杂,可以考虑倒序,比如宝藏一题可以相当于从边界出发放 k 个金币,放完为止,可以考虑二分。
对于转移复杂且有权值限制的题目,可以跑最小生成树,在树上考虑。
对于题目中比较复杂的修改,考虑修改的变化,如超立方体一题中可以发现扩维操作会使得一个点走到和它全部取反的点,于是就不需要考虑 2^k*n 个点了。
在实在不会的情况下可以跑几遍错解,如线段一题中可以跑3遍不同的错解,但好像证明出来这是正解啊……
对于贪心题可以考虑最终价值是怎么得来的。
对于求最少步数的题目可以分情况讨论,解决每种情况的问题后再合并答案。
注意空间问题。
注意精度问题和代码常数,不要打错变量名。
学好组合数学。

浙公网安备 33010602011771号