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函数在使用前需要对容器中的元素进行排序

 

 


 

 

posted @ 2020-02-21 20:41  __ZRH  阅读(248)  评论(0)    收藏  举报