ABC 287 (E-Ex) 题解
摘要:E 我的做法 对于每个串枚举他的答案,然后直接 hash 硬干就完了。 卡一卡就过去了 #include <bits/stdc++.h> using namespace std; typedef unsigned long long ull; const int N = 5e5 + 10; cons
阅读全文
Link-Cut Tree 学习笔记
摘要:Link Cut Tree 是一种用来维护动态树问题的数据结构。 其维护的是一个森林,森林中的每个树由若干个 Splay 组成,每个 Splay 代表树上的一条链,一个 Splay 的中序遍历就是那条链的顺序。 为了将一棵树分成若干条链,我们引入实链剖分。 实链剖分 实链剖分的定义与重链剖分十分相似
阅读全文
CF Educational Round 142 (Rated for div2) 题解
摘要:A 注意到除了血量为 $1$ 的怪物,其余的怪物直接斩杀是更合理的。 所以只要统计血量为 $1$ 的怪物的个数即可。 #include <cstdio> void solve() { int n; scanf("%d", &n); int cnt = 0; for (int i = 1, x; i
阅读全文
ARC 154 题解
摘要:A 首先交换两个位置上的数并不会影响两个数的和。 所以用基本不等式可以得出当两个数一个最小一个最大时乘积就最小。 然后考虑怎么算高精度乘法。 因为要取模,所以我们不用 FFT 啥的,只要按位乘就好了。 #include <cstdio> #include <algorithm> using name
阅读全文
CF Div2 Round 845 题解
摘要:A 注意到奇数和奇数的乘积仍是奇数。 偶数和偶数的乘积仍是偶数。 所以答案就是 $n$ 减去奇偶连续段段个数。 #include <cstdio> #include <vector> using namespace std; void sovle() { int n; scanf("%d", &n)
阅读全文
Splay 学习笔记
摘要:二叉查找树 一定是一颗二叉树 左子树任意节点的值 $<$ 当前节点的值 $<$ 右子树任意节点的值 基本思想 Splay 的基本思想就是越经常访问的节点的深度就越低,也就是说,如果我们访问了一个节点,我们就要将其 Splay 到根。 所以 Splay 的复杂度其实是均摊 $\mathcal{O}(\
阅读全文
寒假题目总结
摘要:[CF 1158E] Strange device 题目大意 这是一道交互题,你需要猜出一个 $n$ 个点的树。 你可以作出 $\leq 80$ 次如下询问: 给交互库一个序列 $d_1,d_2, \ldots, d_n$,交互库会返回一个 01 串,表示对于每一个节点 $i$ 是否存在节点 $j\
阅读全文
Codeforces Round #843 (Div. 2) 题解
摘要:A 题目大意 给你一个只含字母 a, b 字符串,要把它拆分成三段,使得其中间那段要么同时小于等于两边要么同时大于等于两边。 题解 由于只有 a, b 我们可以分讨解决 如果 $[2, \dots, n-1]$ 中间有 b,那么中间那段选 $[2, \dots, n-1]$ 一定合法(因为如果前面的
阅读全文
多项式乘法学习笔记
摘要:多项式乘法 给定两个多项式 $A(x) = \sum_{i=0}^{n-1}{a_i x^i}$ $B(x)=\sum^{m-1}_{i=0}{b_i x^i}$ 求 $C(x) = A(x) \times B(x) = \sum_{i=0}^{n+m-1}{c_i x^i}$ 前置知识 单位根 $
阅读全文