[持续更新]一些结论与技巧
计数
-
\(n\)个节点无向完全图的不同生成树个数有\(n^{n-2}\)个
证明:https://blog.csdn.net/cantjie/article/details/81072276
无标号的树个数:https://blog.csdn.net/geotcbrl/article/details/72850111
-
点数为\(n\),另一边点数为\(m\),共有\(n * m\)条边的带标号完全二分图生成树个数为\([n^(m-1)]*[m^(n-1)]\)
证明:https://blog.csdn.net/qq_34564984/article/details/60593011
-
将一个长度为\(N\)的序列A变成严格单调递增序列至少需要改的元素个数
构造数组\(B[i]=A[i]-i\),求B的最长不下降子序列长度\(len\),\(n-len\)即答案
-
\(\sum n/i\) 为nlogn 级别
-
求和平方的期望等非齐次递推把式子拆开搞
luogu刷题计划
-
神奇的\(k\)阶前缀和,遇到类似\(\sum C^{i+k}_k\)的东西就想一想它
树/图
-
树上以\(x\)为根的子树中所有点的\(dfs\)序范围为\(dfn[x]<=dfn[s]<=ed[x]\)
-
对于查询覆盖某些特定路径的路径条数题目,分类讨论得到路径端点\(dfs\)序取值范围,可能构成一个矩形转化成扫描线处理
-
对于一些具有传递/交换关系条件的元素,考虑图论联通块等
-
正权图最短路图是个DAG,可以拓扑+DP
JZOJ香港记者
-
遇到树上多次到根的操作或相关性质操作,将DFN序排序的话就不会做重
OliveOJ 爬山http://oliveoj.viphk1.ngrok.org/problem/20
字符串
-
对于一些字符串间能否通过调换字母转化的题目(即字符串不确定),我们对于每个字母求出一个串的01哈希值,然后乘以对应字母权值再累加可以得到一个我们想要的哈希值
DP
-
换根与二次扫描可能需要兄弟合并的信息,确立一个儿子便利顺序,弄个前缀和后缀和就好了
数据结构
-
分块时块可以套个其它数据结构,例如\(vector,deque,bitset\)
https://www.cnblogs.com/Rye-Catcher/p/9839086.html (套deque)
貌似YNOI有道套bitset的
-
有趣的套路
区间轮转 l + id = l + id+1 \mod (r+1): 分块+deque : https://www.cnblogs.com/Rye-Catcher/p/9839086.html
修改某数后的LIS : 离线+RMQ问题(前缀区间最大值+有约束条件的最大值)+LIS性质 : https://www.cnblogs.com/Rye-Catcher/p/9841594.html