摘要:
A 一棵树,每次加入一条路径,或者查询一条给定路径包含的路径个数。 \(n,m,q\le 10^5\) 矩形加法,单调查询,三维偏序,cdq 分治。 B 一棵树,有 \(n+1\) 层,第 \(i\) 层有 \(i\) 个点。对于第 \(i(1\le i\le n)\) 层,点的编号分别为 \(\f 阅读全文
摘要:
#40 懒得写了,#41 题目质量过低。 A 有 \(n\) 张长度为 \(m\) 的纸条,每张纸条有 \(k_i\) 个位置有小写字母,其他位置透明。你需要合理从上到下排列这些纸条,使得最终在上方看到的字符串为 \(s\),保证对于每个位置,至少一张纸条在该位置有一个字母。给出方案或无解。 \(1 阅读全文
摘要:
A 有 \(n\) 个木块和一个挡板,他们的初始位置分别为 \(a_1,a_2,\dots, a_n, P\),满足这 \(n + 1\) 个数严格单调递增。有 \(q\) 次操作,每次: 给定 \(x\),加入或删除位于 \(x\) 处的木块。 对于 \(i = 1...n - 1\),把第 \( 阅读全文
摘要:
瓜粉肠。 A 题意:一张 \(n\times m\) 的网格,每个格子中有一个数 \(a_{i, j}\)。你在每个格子 \((i, j)\) 都放置了一个 L 型管道,使得其可以到达 \((i + 1, j), \ (i - 1, j)\) 中恰好一个格子,以及到达 \((i, j + 1), \ 阅读全文
摘要:
link 事实上这是 CSP模拟赛 #36 的 T4。 记 \(a_i,b_i\) 分别为前 \(i\) 个字符中 \(0\) 的个数对 \(n\) 取模后的值,\(1\) 的个数对 \(m\) 取模后的值。那么,记 \(k\) 为序列长度,合法的序列满足: \(\forall 1\le i < j 阅读全文
摘要:
A 题意:给定 \(n, a_{1\sim n}, b_{1\sim n}\),两个点 \(i,j\) 之间有连边当且仅当 \(a_i - a_j\le i - j \le b_i - b_j\) 或 \(a_j - a_i\le j - i\le b_j - b_i\),求图中连通块数量。 \(1 阅读全文
摘要:
link 假定 \(a_{1\sim n}\) 不对 \(n\) 取模,设最终状态为 \(b_{1\sim n}\),令 \(S = \sum\limits_{i = 1} ^ n (b_i - a_i)\),应满足以下条件: \(b_i \bmod n\) 两两不同 \(m | S\) \(\ma 阅读全文
摘要:
A 题意:平面上给定 \(n\) 个点,求所有点两两之间曼哈顿距离比欧几里得距离的最小值和最大值。 \(n\le 10^6\) 设两个点之间的斜率为 \(k\),设 \(k' = \max(|k|, \frac 1 {|k|})\),我们相当于求 \(k'\) 的最小值和最大值。 发现求 \(k'\ 阅读全文
摘要:
int __builtin_ffs (unsigned int x) 返回右起第一个 \(1\) 的位置。 int __builtin_clz (unsigned int x) 返回左起第一个 \(1\) 之前 \(0\) 的个数。 int __builtin_ctz (unsigned int x 阅读全文
摘要:
link 超棒的题目。 考虑到差分的性质不够好,转化为将 \(b\) 做若干次前缀异或操作变为 \(a\)。前缀和只会影响一段前缀的值,所以考虑逐个确定 \(b_{n\dots 1}\),变为 \(a\)。 枚举 \(i\) 表示当前需要还原 \(b_i\)。只有对 \(k = i\) 操作才能改变 阅读全文