吾日?省吾身

用来记录我犯过的纱布错误

from 2020/10/17

数据范围 5e5 数组开了默认的 1e5

双指针的时候 l,r 写反

”有向图“在题面开头给出,而不是输入格式部分给出

printf 保留小数输出自动四舍五入

记忆化搜索一定要用 vis 数组记录是否被访问过,借用别的的数组可能会出现0

std::deque 使用时注意判断队列是否为空

算逆元别忘了 inv[1]=1 啊

std::next_permutation() 只能给 int/longlong 排列

STL 调用 back() 记得判断是否 empty

计数/数论题,如果在模意义下,且运算过程中可能出现负数,在输出答案的时候一定要记得调正

需要重构的数据结构,记得记录下来后面新插入的点,不要只用临时变量存了用完了就完事了

改数组下标的时候千万别改了上面没改下面,结果某一处代码还是在用着错误的下标(尤其是判断边界的时候容易出错!)

大型数据结构别用指针

线性基需要枚举到 0

trick吧

排列进行 n 次循环的题考虑每次操作(加一个点删一个点)造成的贡献

n 不大于 17 考虑状压 dp,$O(n!)$ 的算法可以通过状压优化至 $O(3^n)$

数列规律题记得观察样例联系,并特别注意比如完全平方数这样的特殊数

一个结果出现前必须保证已有若干结果已经出现的限制,考虑图上连边构造闭合子图跑拓扑

m = n - 1 并不是都是树,注意可能不连通

DAG 上期望 dp 时,入度不决定概率,出度决定概率(不懂的话画树状图

异或最大最小之类的题考虑最高位分组

找数列规律时可以考虑第一个位置从 0 开始

树上 $dist(u,v)=dep_u+dep_v-2dep_{lca(u,v)},移动左端点,考虑所有右端点的贡献,即使强制在线也可以通过可持久化来做。

posted @ 2020-10-17 22:12  Chiaro  阅读(148)  评论(0)    收藏  举报