注意事项&&性质

竞赛图性质

1.强连通与哈密尔顿回路充要
构造方法:先构造哈密尔顿路径,然后首先找到一条哈密顿路径 (按任意顺序加点即可),然后找到路径上第一个向第一个点有边的点,作为初始的环。之后每次找到第一个向环中点有边的点,将它及之前未加入的点加入即可。
2.任意都有一条哈密尔顿路径
构造方法:增量法,一定存在一条边u->v满足u->p->v或者插在头尾
3.缩点后是一个链状DAG,前面向后面所有点连边。
4.如果 x 的出度大于 y 的出度,则 x 可以到达 y
5.任意大小为 n>1 的强连通分量中,大小为 [3,n] 的环均存在
6.
兰道定理(竞赛图判定定理)
有向完全图。du为出度
\(\sum_{i=1}^{k} du[i] >= k*(k-1)/2\)
k=n等号取到
构造方法:
先构造a(0,1,2,...n-1),目标s()
1>找第一个\(s[x]>a[x]\)
2>找最后一个\(a[x]=a[y]\)
3>找第一个\(s[z] < a[z]\)
4>a[z]-a[y]>=2 所以必然会存在p使得\(z->p->y\)
5>.反转这两条边G[z][p] G[p][y]
6>.重复操作直到完全相同
或者按照度数从小到大连边
7.(竞赛图强连通分量判定定理)将入度从小到大排序,注意是入度,不是出度。
这样极大scc在区间上连续,且右端点满足判定定理\sum=C(n,2)。(因为是入度,相当于单向边割裂)

树上拆点

ccpcfinal2022 A
有两颗树放在一起了,形成了一个图,问有多少种分开方案使得是两棵树。
拆点,结果是基环树森林。

异或哈希

Codeforces Round 875 (Div. 1) C
一堆区间,问区间都是合法括号的有多少种。
把点分等价类然后乘一乘卡特兰数,等价类就是经过该点的线段集合,用xorhash。
记住,真随机数是

mt19937_64 rng(233);
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

mex tree

错误想法不一定是完全没用的。
卡卡上届下届。或者拓展一下。大概率还是和正解有关的。
套算法。

icpc2022济南 B torch


很妙的一道题

posted @ 2023-04-11 10:09  小饼卷大葱  阅读(18)  评论(0)    收藏  举报