随笔分类 - 做题记录
摘要:洛谷传送门 AtCoder 传送门 考虑若 \(n\) 是奇数怎么做。枚举 Alice 第一次选的数 \(a_i\),然后考虑把剩下的数两两结成一个匹配,若 Bob 选了其中一个,Alice 就选另一个。容易发现排序后奇数位和它右边的偶数位匹配最优。那么设奇数位的和为 \(A\),偶数位的和为 \(
阅读全文
摘要:洛谷传送门 CF 传送门 看到这种操作乱七八糟不能直接算的题,可以考虑最短路。 对于 \(a, b, c, d, m\) 按位考虑,发现相同的 \((a, b, m)\) 无论如何操作必然还是相同的。 于是考虑对于每个可能的 \((0/1, 0/1, 0/1)\),所有终态有 \((c = 0/1,
阅读全文
摘要:洛谷传送门 AtCoder 传送门 若图中存在点使得删去它后 \(S, T\) 不连通,那么 A 可以一步获胜。 否则,双方都不会删去一个点使得删去它后会产生一个点使得删去它后 \(S, T\) 不连通。那么到最后图上会剩下两条 \(S \to T\) 的不交路径。此时一方无论如何操作都会使得另一方
阅读全文
摘要:洛谷传送门 AtCoder 传送门 用 \((x, y)\) 表示 \(Ax + By\),那么这个等价于 SB 树。 那么直接在 SB 树上二分,遍历一遍找到 \(n\) 个点就好了。可以采用类似线段树查询的方式。 于是现在还剩下一个子问题:给定 \(a, b\),求 \(ax + by \le
阅读全文
摘要:洛谷传送门 AtCoder 传送门 非常妙的题。 先直观感受一下,显然当 \(M\) 大到一定程度后,\([0, M]\) 的所有数都能被取到。考虑 \(V \gets V + Ax + By\),其中 \(V + Ax + By \in [0, M]\)。如果 \(x, y\) 都是正数显然可以取
阅读全文
摘要:洛谷传送门 AtCoder 传送门 看到和度数有关的(基环)树计数,可以想到 Prufer 序。 如果要计数一棵树,那么答案就是 \(\binom{n - 2}{d_1 - 1, d_2 - 1, \ldots, d_n - 1}\)。因为度数为 \(d\) 的点在 Prufer 序中恰好出现 \(
阅读全文
摘要:洛谷传送门 首先特判 \(a_i = 0\),然后: \(\begin{aligned} f_k(x) & = \sum\limits_{i = 1}^k |a_i x + b_i| \\ & = \sum\limits_{i = 1}^k a_i |x + \frac{b_i}{a_i}| \en
阅读全文
摘要:QOJ 传送门 考虑 \(1\) 到其他关键城市的最短路的并是一棵以 \(1\) 为根的外向树,考虑在外向树上从叶子往根 dp。 设 \(f_{u, i, S}\) 为当前在点 \(u\),已经翻修了 \(i\) 条道路,当前已经经过的关键点集合为 \(S\),最短路最大值的最小值。 转移有两种情况
阅读全文
摘要:QOJ 传送门 考虑从低位向高位 dp,设 \(f_{i, S}\) 为考虑到从低到高第 \(i\) 位,当前每个数超出上界的情况为 \(S\)。 转移可以枚举这一位填的数: 若 \(a_j = 0, r_j = 1\),那么这一位一定不会超出上界; 若 \(a_j = 1, r_j = 0\),那
阅读全文
摘要:洛谷传送门 CF 传送门 最小交换次数等于 \(n - \text{环数}\)。所以题目要我们统计把 \(p, q\) 补全成排列,连边 \(p_i \to q_i\),环数 \(= i\) 的方案数。 考虑把边根据 \(p_i, q_i\) 的是否已知状态分成四类: \(p \to q\) \(p
阅读全文
摘要:洛谷传送门 CF 传送门 考虑一个子问题:求从某个点 \(u\) 能到达的点数。 如果要精确地计算出来,最优解法只能是 \(O(\frac{n^2}{w})\) 的 bitset。但是我们还没有利用到题目的性质,我们只需要判断一个点是否至多有一个点互不可达。 考虑拓扑排序的过程,队列里面的点两两互不
阅读全文
摘要:洛谷传送门 CF 传送门 考虑一条 \(1 \to i\) 的路径是否在最小生成树上。 称边权为 \(a\) 的边为轻边,边权为 \(b\) 的边为重边。 轻边若不成环则一定在最小生成树上,因此先把轻边合并,这样形成了若干连通块。 那么如果两点在一个连通块,它们只能通过轻边互达。 同时,因为是树上路
阅读全文
摘要:洛谷传送门 AtCoder 传送门 若 \(2\min\limits_{i = 1}^m a_i < \max\limits_{i = 1}^n a_i\) 就无解,因为根据排列的性质必然存在 \(yxxxy\) 或两端 \(xxyy\) 的情况,并且若这个条件不满足,就可以构造一组解。 考虑最小化
阅读全文
摘要:洛谷传送门 AtCoder 传送门 考虑若重排好了 \(a\),如何判断可不可行。显然只用把 \(b\) 排序,把 \(\min(a_{i - 1}, a_i)\) 也排序(定义 \(a_0 = a_{n + 1} = +\infty\)),按顺序逐个判断是否大于即可。 这启示我们将 \(\min(
阅读全文
摘要:洛谷传送门 CF 传送门 过程相当于是将 \(p\) 重排列。设 \(b_i\) 为 \(p\) 中数为 \(i\) 的位置。考虑当前填的数 \(x\) 贡献的逆序对数,相当于是当前所有已经填入 \(p\) 的数 \(y\),都有 \([b_y > b_x]\) 的贡献。 考虑 \(p_{q_i}
阅读全文
摘要:洛谷传送门 AtCoder 传送门 首先将 \(a\) 从小到大排序,设 \(p_i\) 为排序后的 \(a_i\) 位于原序列第 \(p_i\) 个位置,\(x_i\) 为要填的排列的第 \(i\) 个数。 设 \(A = \prod\limits_{i = 1}^n (a_i - i + 1)\
阅读全文
摘要:洛谷传送门 CF 传送门 发现如果取模中途没有出现 \(0\),则可以 \(x \gets x + 1\)。 由此设 \(f_{i, j}\) 为考虑 \([1, i]\),最后取模得到的范围是 \([0, j]\)。 设最后的结果为 \(x\),中间结果减去 \(x\) 和为 \(y\),那么对答
阅读全文
摘要:洛谷传送门 AtCoder 传送门 悲,赛时代码赛后被 hack 了。 发现对子段排序不会使排列的字典序变大。因此若存在长度 \(\ge k\) 的递增子段直接输出原排列。 否则答案与原排列的 \(\text{LCP}\) 至少为 \(n - k\)(可以通过对 \([n - k + 1, n]\)
阅读全文
摘要:洛谷传送门 CF 传送门 看到 \(a_{a_i}\) 和 \(a_i \in [1, n]\),果断连边 \(i \to a_i\),得到内向基环森林。 那么每次相当于把 \(a_i\) 变成自环,连边 \(i \to a_{a_i}\)。 但是每次操作都改变图的形态很不好办,考虑打标记。 每次
阅读全文
摘要:洛谷传送门 考虑一个前置问题:给定 \(a, b, n\),求 \(\sum\limits_{i = 1}^{n} (ia \bmod b)\)。 根据 \(x \bmod y = x - y \left\lfloor\frac{x}{y}\right\rfloor\) 可以化简式子: \[\sum
阅读全文

浙公网安备 33010602011771号