小总结

假如 CSP 寄了,这就是死亡回放

没有简单题,不要总是想很快签。

即使是黄也需要想一会,想不出来别慌,再不过先把暴力打出来。

注意打特殊性质的分,复杂度不对也应该接着想,\(\mathbb{T}\) 总比爆零好。

思维题就是想性质转化,发现不会了再读题想性质,想到性质重新读题转化题意。

先打暴力!!!暴力分有惊喜!!!不读题你永远不知道一个 \(O(2^n)\) 的暴力能拿多少分。

注意暴力优化,可能很简单的优化也能涨分。

经常换换思路,其实有更直接更优的方法,根本没有绕那么远。

别太死。

容易忘的

状压

(数据范围较小时,也可以打部分分。)

连通问题可以压与上一位是否连接

矩形覆盖

方案数,组合

bitset 同样可以压缩状态,注意一些与二进制有关的性质或者存在性问题

当然可以优化暴力。

本质不同子序列,mod 2

差分

区间(树上问题)区间修改单点查询可以直接用差分,也可以和扫描线结合。

区间不同子串数

根号

发现不能 log,开始尝试根号,根号重构跑暴力。

表达式

相乘如果有上界,那么就能变成根号做。

发现上界 n,然后只会建根号条边

Trie

即可以处理字符串(可以维护很多信息,如前缀串出现次数),

一般也会和差分结合维护区间异或最大值。

如果需要分治就 trie 合并。

字符串拼接

笛卡尔树,trie 启发式合并

DP

要想到多开几维,然后用一些压维小技巧,如前缀和减去部分和。

四维 dp 字符串

图上 dp 转化生成树,断环,处理基环树或仙人掌。

敢于打复杂度高的 dp。别怕麻烦。

暴力断环

线段树

除了一些高级线段树和最简单的维护和,还有区间满足结合律的信息都可以维护。

要看出来线段树维护信息裸题。

裸不裸

势能线段树

发现有一些操作不可重复(比如死),那么一共只有 \(m\) 次操作。暴力维护。

注意开 long long

距离

切比雪夫转曼哈顿

处理 max 转 |x|。

所以真的会考吗?oi-wiki

线段树合并、拆绝对值、分治(类似CDQ)

同余

不仅在数学里出现,还可以处理周期问题。

循环,周期

解同余方程时注意信息的隐藏

信息的隐藏

引用 GGrun 提到的例子,给一条直线 \(y=kx+b\),你能知道它过 \((0,b)\)

但是反过来,如果你知道一个定点 \((0,b)\) 却不能确定这条直线。

其实就是充分和必要的关系,你在转化的过程中,信息被隐藏了,导致 \((0,b)\) 不具有 \(y=kx+b\) 的所有信息。

这个在频繁的转化问题过程中可能还挺重要的吧,注意转化后一定要是充要条件,才是完全等价。

注意没包含的情况需要分讨。

同余方程,细节分讨

线段树分治

不知道能不能用上。

将删除操作转为撤销操作,也可以理解成加入补集的操作。

空间一般开不下,但毕竟是 vector,不会爆零。

注意有时候暴力会更优。(想骗特殊性质,莫名拿了暴力 25,发现直接暴力有 50)。

注意启发式合并 sz 初始化!!!

赛时骗分(未改完)

posted @ 2024-10-24 20:35  ppllxx_9G  阅读(46)  评论(0编辑  收藏  举报