[笔记]赛前瞎整理2019
算法&数据结构
觉得系列
-
数学
卡特兰数:\(C_{2n}^{n}-C_{2n}^{n+1}\),出栈入栈,括号匹配
斯特林数
欧拉函数:\(\phi (x)=x*\prod1-\frac{1}{p_i}\),其中\(p\)是\(x\)的质因数埃式筛法求欧拉函数
组合数学:
二项式定理:\(\sum_{i=0}^{n}C_n^i*x^i*y^{n-i}=(x+y)^n\)
\(\sum_{i=k}^{n}C_i^k=C_{n+1}^{k+1}\)
抽屉原理
错排公式:\(f[n]=(f[n-1]+f[n-2])*(n-1)\)
平方和公式:\(\frac{n(n+1)(2n+1)}{6}\)
立方和公式:\((\frac{n(n+1)}{2})^2\)
exgcd
(EX)BSGS
裴蜀定理
放球问题:最关键的大概是问题的转化吧
-
整除分块:[缩进优化]
-
概率与期望:
算系数
算方案
方差=平方的期望-期望的平方
-
贪心
-
dp
各种背包问题
树型dp
动态dp(注意矩乘的顺序)
斜率优化
壮鸭dp
线段树优化dp
-
线段树
线段树优化建图
主席树
-
线性基
-
高位前缀和
-
字符串
马拉车(注意边界)
KMP
并不觉得会考的SAM 咕
并不觉得会考的AC自动机:它的fail等于它的father的fail的它儿子,记住这个就好啦 -
图
-
二分图
最小点覆盖=最大匹配
最小边覆盖=最大独立集=n-最大匹配
KM
-
-
二分
- 整体二分
-
分治
- cdq分治
- 树的分治
- 点分治
-
博弈(SG定理,反尼姆博弈…)
tips:考虑后手对先手的模仿
打表找规律 -
压位
数据结构
-
set
st.lower_bound(x)
-
multiset
-
bitset:
_Find_first()
,_Find_next(x)
-
栈
-
并查集
-
树
dsu on tree
欧拉序——ST表求LCA
倍增
克鲁斯卡尔重构树
-
链表
-
blingbling打表找规律大法又来啦
不觉得系列
- 高斯消元
- 网络流
- 自适应辛普森积分:\((b-a)*\frac{f(a)+f(b)+4f(\frac{a+b}{2})}{6}\)
小技巧
- 正难则反
零负担抽象注意题意的转化- \(\forall\)和\(\exist\)与最大最小值的转化
- 拆点
- 从暴力想正解,从已知求未知
- 中位数:大于的赋为1,小于赋值为-1
- 化简题意:先删掉某些限制思考问题
- 子树问题——dfs序
- 行列问题——二分图
- 小范围暴力,大范围高效算法:[缩进优化],[1115T1]
- random_shuffle(a+1,a+n+1)
听说random_shuffle和喵喵喵更配哦 - nth_element(a+l,a+k,a+r+1);
- 把答案拆成不同部分的贡献
Notice
-
线段树之类的不知道空间可以造数据测一下
-
推柿子的题目要敢推,
至少展开一下装装样子是要的吧 -
看清数据范围
比如“对于100%的数据balabala”放在部分分前面
再比如“数据的绝对值balabala”说明有负数
-
多组数据记得清零,倍增的father数组也要清空
-
强制在线特判答案的时候记得更新
-
不要轻易丢掉觉得有一点点错的想法,除非能清楚地知道为什么错了
-
想清楚了再开始码,先想尽办法把自己X掉
-
看清题意啊 -
注意题意的转换,先把乱七八糟的背景都去掉,这样比较容易看出方法
-
一定一定要留足时间检查!!!!!!!!
-
int类型函数注意返回值!!!!!!!!!!!!!!!!!!!!!!!!!!
-
输出字符串不要自己打
明天就要比赛啦系列
ZJ-00604 怀挺!!!
诶呀,差点忘了——everyone RP++!!
今天Day1系列
啊哈哈看见xjh啦开心开心
小面包卖相太差了,差评
qwq翻了一下去年的整理发现怎么连说的话都差不多