Codeforces Round #613 (Div. 2) Mezo Playing Zoma 贪心。 int main() { int n; string s; cin >> n >> s; int l = 0, r = 0; for (int i = 0; i < n; i++) ...
CF526F Pudding Monsters 题解
CF526F Pudding Monsters 题意 给定一个 $n \times n$ 的棋盘,其中有 $n$ 个棋子,每行每列恰好有一个棋子。 求有多少个 $k \times k$ 的子棋盘中恰好有 $k$ 个棋子。 $n \le 3 \times 10^5$。 题解 ...
CF521E Cycling City 题解
CF521E Cycling City 题面 给定一张 $n$ 个点 $m$ 条边的无向简单图。 问图中能否找到两个点,满足这两个点之间有至少三条完全不相交的简单路径。 $n,m \le 2 \times 10^5$,图不保证连通。 题解 首先...
CF526G Spiders Evil Plan 题解
CF526G Spiders Evil Plan 题意 给定一棵 $n$ 个节点的无根树,每条边有边权。 有 $q$ 次询问,每次询问给出 $x,y$,你需要选择 $y$ 条树上的路径,使这些路径形成一个包含 $x$ 的连通块,且连通块中包含...
长链剖分 学习笔记
长链剖分常用于优化一类特殊的动规,它可以在满足某些要求时,将 $\mathcal O(n)$ 的转移复杂度均摊为 $\mathcal O(1)$。此外,长链剖分还有一些优秀的性质,目前长链剖分在信息学竞赛中应用很广泛。 定义 ...
Codeforces Round #612 (Div. 1) 题解
Codeforces Round #612 (Div. 1) Garland DP 题做成贪心 WA 无数次,不愧是我。 const int N = 107; int n, a[N], f[N][N][N]; inline void upd(int &x, int y) { x = min(x, y); } int main() ...
Hello 2020 题解
Hello 2020 New Year and Naming 模拟。 const int N = 23; int n, m; string s[N], t[N]; int main() { cin >> n >> m; for (int i = 0; i < n; i++) cin >> s[i]; fo...
Good Bye 2019 题解
Good Bye 2019 Card Game 谁有 $n$ 谁赢。 inline void solve() { int n, a, b, x; bool ok; rd(n), rd(a), rd(b); for (int i = 1; i <= a; i++) { rd(x); if (x == ...
【LGR-066】洛谷 1 月月赛 Div.2 题解
【LGR-066】洛谷 1 月月赛 Div.2 Hello, 2020! 模拟。 const int M = 1e6 + 7; int n, m, p, k, x, c[M]; int main() { rd(n), rd(m), rd(p); for (int i = 1; i <= n; i++) { rd(k);...
树上启发式合并 学习笔记
树上启发式合并 (dsu on tree) 可以在较优秀的复杂度内解决某些树上离线问题。 引入 考虑这样一个问题: 给一棵 $n$ 个点的有根树,求每棵子树的颜色种类数。 考虑暴力,当我们要求 $x$ 的子树的答案时...
