算法博客链接
算法好博客:
套路做法
关于对称图像的路径,珂以考虑对称回来。
连通块的积考虑拆成组合意义:连通块内分别选一个点的方案数。
对于一堆点的询问,输出一堆点的答案,不要把下标和编号弄反!!1
当数组范围 \(n\) 太大但对于 \(n/2\) FloodFill 可行时,珂以考虑折半搜索。
当 DP 方程很难写出时(或边界难处理),珂以考虑用自己更新别人。
对于(任意一段满足性)的序列计数问题,珂以考虑 DP 某一维是后缀状态。若不能,则考虑什么样的序列合法。
#define int unsigned long long
时记得考虑 for 循环内边界问题。
对于两条路径重叠部分,注意反路是否算重叠,即 1-2-3
与 3-2-1
是否算重叠。
当状态量太大无法直接求 SG 函数值是,不妨先打一个 SG 函数的大表,然后找规律。或者考虑求能赢的最小状态。
尽量不要 #define int long long
,有些东西能预处理就预处理。
若要满足划分集合必须满足两种方案其中一种,珂以考虑构造二分图。
多次比赛没有平局的情况珂以想象成网络流模型,源点向比赛点、比赛点向参赛者各连一条容量为 1 的边。
经典结论
一个单调递增的序列的差分数组至多有根号值域种不同的值。
给无向图赋边方向,满足 \(|in[i]-out[i]| \le 1\),应该想到这是有欧拉路径的必要条件,转化成无向图上欧拉路径后,可以考虑奇入度点两两连边转成欧拉回路。