定义
semi[x]
半必经点: $x$ 的祖先 $z$ 中,能不经过 $z$ 和 $x$ 之间的树上的点而到达 $x$ 的点中深度最小的。idom[x]
最近必经点:就是深度最大的根到 $x$ 的必经点。
其它的证明看不懂 T^T。
模板
1 | vector<int> G[maxn], rG[maxn]; |
semi[x]
半必经点: $x$ 的祖先 $z$ 中,能不经过 $z$ 和 $x$ 之间的树上的点而到达 $x$ 的点中深度最小的。idom[x]
最近必经点:就是深度最大的根到 $x$ 的必经点。其它的证明看不懂 T^T。
1 | vector<int> G[maxn], rG[maxn]; |
rank | solved | A | B | C | D | E | F | G | H | I | J | K |
---|---|---|---|---|---|---|---|---|---|---|---|---|
62 | 7 | O | Ø | O | O | . | . | . | . | O | O | O |
1 | namespace pam { |
rank | solved | A | B | C | D | E | F | G | H | I | J |
---|---|---|---|---|---|---|---|---|---|---|---|
38 | 7 | Ø | O | . | O | . | Ø | O | O | . | O |
rank | solved | A | B | C | D | E | F | G | H | I | J | K | L |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
84 | 6 | . | O | . | . | O | . | . | . | Ø | O | O | Ø |
rank | solved | A | B | C | D | E | F | G | H | I | J | K | L | M |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
37 | 8 | . | O | . | O | O | Ø | . | . | O | . | O | Ø | Ø |
rank | solved | A | B | C | D | E | F | G | H | I | J |
---|---|---|---|---|---|---|---|---|---|---|---|
12 | 6 | Ø | O | . | O | O | O | . | O | . | . |
rank | solved | A | B | C | D | E | F | G | H | I | J |
---|---|---|---|---|---|---|---|---|---|---|---|
79 | 8 | O | Ø | O | . | Ø | O | . | Ø | Ø | O |
两个人游戏,从 $n$ 数到 $0$,每次选择 $-1,-2,-k$ 三种中一个,无法操作者为负,判断是否先手必胜。
必胜态 / 必败态打表观察。
给了一堆水平线和竖直线,求能够拼成多少个矩形。
枚举右边界,扣出与右边界相交的横线,枚举左边界,从左到右扫描线,树状数组维护横线的纵坐标出现位置。
时间复杂度 $\mathcal{O}(n^2 \log n)$。
总时间为 $T$,依次发生 $n$ 个事件,每个事件时长为 $t_i$,每个事件的时长各有一半的概率不变和变成 $t_i+1$,求发生事件次数的期望。
设发生事件 $i$ 至少需要时间 $pre$,即前缀和,最多花费时间 $pre+i$,那么事件 $i$ 发生的概率为 $\sum_{j=0}^{T-pre}{ i \choose j } / 2^i$。
因此题意变成求一堆这样的组合数,分治 NTT 莫队即可。
rank | solved | A | B | C | D | E | F | G | H | I | J | K |
---|---|---|---|---|---|---|---|---|---|---|---|---|
14 | 8 | O | O | O | Ø | O | O | . | . | . | O | O |