OI学习笔记
组合数递归求法:
$C_n^k = C_{n-1}^k + C_{n-1}^{k-1}$
卡特兰数:
$Cat_n = Cat_0Cat_{n-1}+Cat_1Cat_{n-2}+...+Cat_{n-2}Cat_1+Cat_{n-1}Cat_0 =\frac{1}{n+1}C_{2n}^n$
手动开O2
#pragma G++ optimize (2)
费马小定理
若p为质数,$a^p \equiv a \pmod p$
可用于求逆元
欧拉定理
若a,n互质,$a^{\phi(n)} \equiv 1 \pmod n$
欧拉定理推论
若a,n互质,$a^b \equiv a^{b \mod \phi(n)} \pmod n$
扩展欧拉
a,n不一定互质,当$b\geqslant\phi(n),\ \ a^b\equiv a^{b \mod \phi(n) + \phi(n)} \pmod n$


lower bound/upper bound vector <int>::iterator it; printf("%d", *it); multiset<int, greater <int> > set1; multiset<int, less <int> > set2;
高精压位,要输出每一个压位的前缀0。和特判结果为0的情况。
无向图tarjan 用访问过的点y更新low[x] ,不能用low[y]而要用dfn[y],因为前向边(指向搜索树的节点)指向的节点y的low可能更小,那么low[x]更新为low[y]就会走过搜索树上的边,不符合low的定义。
SCC:strongly connected components
end()指向最后一个元素的下一个元素
std::unique
功能:对有序的容器重新排列,将第一次出现的元素从前往后排,其他重复出现的元素依次排在后面
返回值:返回迭代器,**迭代器指向的是重复元素的首地址**
unique函数在使用前需要对容器中的元素进行排序

浙公网安备 33010602011771号