- 树剖求lca
- 第二类Stirling数
- 倍增+floyd 跑路【G[i][j][logn] 和 dis[i][j]的巧妙定义】
- spfa 负环 多组要建图的数据记得mem(head,0),记得初始化cnt[s]=1;,cnt[v]>n而不是>=(容斥原理)
- 欧拉图 考虑:1.连通 2.欧拉图的判定
- st表
- 会议座位 以第一个序列作为基准,用数组x映射一下b在a的位置,那么总不满值就是新的编号的b的逆序对个数
st 表
rep(i,1,n)rd(f[i][0]);
rep(j,0,20)
for(int i=1;i+(1<<j)-1<=n;++i)
f[i][j+1]=max(f[i][j],f[i+(1<<j)][j]);
while(m--){
int l,r;rd(l),rd(r);
int len=log2(r-l+1);
printf("%d\n",max(f[l][len],f[r-(1<<len)+1][len]));
}
欧拉图
*如果图中奇数度的顶点个数小于等于2,则一定存在欧拉回路
*在无向图中每个顶点的度都是偶数,则一定存在回路
*在有向图中,每个节点的入度等于出度,则存在回路
使用并查集维护经过点的个数
设hebing为成功合并的次数,n为点数
则整张图含欧拉路当且仅当hebing>=n-1且奇度数点为0或2
//tot:出现的点的个数(把一种颜色看做一个点)
//hebing记录成功合并的次数
【第二类Stirling数】P1287 盒子与球
表示n个球放入r个不同的盒子的方法。