首页 > 其他分享 >题解

题解

时间:2022-11-08 18:57:12浏览次数:32  
标签:le frac 题解 texttt times 括号 2n

A

发现 \(a\) 的线性基的大小很大,枚举一下线性基外面的数选或者不选,判断一下能否构成 \(k\) 个区间即可。

B

我们找出所有的三元组 \((x, y, c)\) 代表某一列中 \(x\) 行和 \(y\) 行颜色都是 \(c\)。

首先三元组的种数只有 \(2n \times (2n - 1) / 2 \times n = n^2 \times (2n - 1)\) 种。

我们接下来证明一列至少会占用 \(n\) 种:

$ \sum c_i = 2n $

\[\begin{aligned} \sum \frac{c_i(c_i - 1)}{2} &= \frac{\sum c_i^2}{2} - \frac{\sum c_i}{2}\\ &\ge \frac{(\sum c_i)^2}{2n} - n\ \text{(Cauchy–Schwarz inequality)}\\ &= n \end{aligned} \]

所以 \(m > n \times (2n - 1)\) 时必然无解。

下面给出 \(m = n \times (2n - 1)\) 的构造。

不妨把一对颜色相同的点看作一个匹配,那么如果我们能找出 \(K_{2n}\) 的 \(2n - 1\) 个边集不相交的匹配,每一组匹配都可以循环着染色染 \(n\) 列。

(以下点的下标从 \(0\) 开始)构造匹配是容易的:对 \(i\in [0, 2n - 2]\) 我们找出满足 \(x + y \equiv i \pmod{(2n - 1)}\) 的每一对 \((x, y)\) 根据同余的性质一定有 \(n - 1\) 对,而 \(i \times 2^{-1}\) 一定没有匹配,和 \(2n - 1\) 匹配即可。这样对于每一个 \(i\) 我们都找到了一组匹配,且它们边集不交。

C

首先我们不妨设 \(a_i \le b_i\)。

我们讨论一下一对数 \(a_i, b_i, a_j, b_j\) 的贡献:首先两个都交换的话贡献不变,如果 \(a_i \le b_i \le a_j \le b_j\) 交换了某一组 \((a, b)\) 答案不变,如果 \(a_i \le a_j \le b_i \le b_j\) 交换了某一组 \((a, b)\) 答案加上 \(b_i - a_j\),如果 \(a_i \le a_j \le b_j \le b_i\) 交换了某一组 \((a, b)\) 答案加上 \(b_j - a_j\)。

概括一下,如果交换了其中一组 \((a,b)\) 那么 \((a_i, b_i)\) 和 \((a_j, b_j)\) 之间的贡献会加上这两条线段的交的大小。

现在问题变成了:给 \(n\) 个线段,每条线段可以染成黑白两种颜色,使每一对异色线段的交的和最大。

我们在数轴上连接 \((a_i, b_i)\),我们把每个连续段拿出来(类似扫描线那样),如果它被 \((a_i, b_i)\) 这样的边覆盖了 \(k\) 次,那么它的贡献的上界是 \(len \times \left\lceil \frac{k}{2} \right\rceil \times \left\lfloor \frac{k}{2} \right\rfloor\)。

现在通过构造来说明:每个上界都可以达到。

如果一个小段被覆盖了奇数次,那就额外在这个小段左右端点之间连一条边。

这样,每个点的度数都是偶数,它的每个连通块都有欧拉回路。所以被覆盖了 \(k\) 次(包括额外边)的小段会被从左往右走 \(\frac{k}{2}\) 次,从右往左走 \(\frac{k}{2}\) 次。而它只会被额外边覆盖一次,所以把从左往右的染成白色,从右往左的染成黑色,便能达到上界了。

D

先考虑如何求一个串的价值:

首先 \(\texttt{((}\) 之间的贡献和 \(\texttt{))}\) 之间的贡献是好算的。

我们考虑计算出对于长度 \(n\) 的所有合法的括号序列的 \(\texttt{)(}\) 子序列数量,以及原来括号序列的 \(\texttt{()}\) 的子序列数量,那么就很容易算出答案。

此时发现一个串的价值为 \(Ax + B\) 的形式,其中 \(x\) 为该串的 \(\texttt{()}\) 的子序列数量。于是可以对于每一个 \(\texttt{()}\) 都算上贡献,就能做原问题了。

问题变成了如何求长度 \(i\) 的所有合法的括号序列的 \(\texttt{)(}\) 子序列数量和。

设 Catalan 数列为 \(f\),生成函数为 \(F(x)\),设答案数列(所有 \(i\) 个左括号的合法括号序的 \(\texttt{)(}\) 子序列的数目之和)为 \(g\),生成函数为 \(G(x)\)。

考虑合法括号序的构造:在一个合法括号序外加一左一右两个括号,没有贡献;两个合法括号序 \(A,B\) 拼接成 \(AB\),贡献为 \(\operatorname{len}(A)\times\operatorname{len}(B)\)。

注意到形如 \(ABC\) 的序列只能计算一次,故我们强制钦定只算形如 \(A(B)\) 的括号序,这样多个括号序拼接只会计算最后一次。

考虑递推式为 \(g_i = \sum f_jf_{i - j - 1}j(i - j) + f_jg_{i - j - 1} + f_{i - j - 1}g_j\)。

得到生成函数 \(G(x) = xF^\prime(x)x(xF(x))^\prime + 2xF(x)G(x)\)。

将 \(xF(x)\) 带入 \(\frac{1-\sqrt{1-4x}}{2}\) 得到 \(G(x) = \frac{x^2F^\prime(x)}{1 - 4x}\)。

可以直接线性递推。

而动态维护原序列 \(\texttt{()}\) 数量也是容易的,因为交换 \(x\) 和 \(y\) 两个位置改变量只能是 \(0\) 或者 \(\pm (y - x)\)。

时间复杂度 \(\mathrm{O}(n + q)\)

标签:le,frac,题解,texttt,times,括号,2n
From: https://www.cnblogs.com/AC7-/p/16870799.html

相关文章

  • 使用axios请求,前端数字long类型精度问题解决方法
    今天开发遇到个问题,服务器后端的Long类型数据,传到前端会出现精度丢失,如:164379764419858435,前端会变成164379764419858430。在浏览器中做测试可知,这就是一个精度丢失的问题。......
  • 30道TypeScript 面试问题解析
    英文|https://betterprogramming.pub/top-50-typescript-interview-questions-explained-5e69b73eeab1翻译|web前端开发TypeScript是Microsoft开发的JavaScript的开......
  • antdv (Ant Design of Vue) 复杂表单验证问题解决方法
    我们知道,在简单的表单中,都是一项一项往下排列的,验证的时候也按照字段一一对把规则写好就能验证,如下图  但是遇到了复杂场景的表单验证,比如一项由多个input、checkbox......
  • 【ARC105C】Camels and Bridge 题解
    题意给定\(n\)只骆驼和每条骆驼的重量\(a_i\)。这些骆驼要通过一条路,这条路被分为\(m\)个部分,每个部分的长度为\(l_i\),限重为\(v_i\)。同时经过这部分的骆驼的重......
  • CF1368G Shifting Dominoes 题解
    CF1368GShiftingDominoes题解题目传送门CF1368GShiftingDominoes题目大意给你一个\(n\timesm\)的棋盘,上面有\(\frac{n\timesm}{2}\)个不重叠的骨牌,你可以......
  • odoo备份数据库无法备份问题解决:Command 'pg_dump' not found.
    背景景:ubuntu20.04上用命令安装postgresql后,odoo备份数据库报如下错误安装命令:sudoapt-getinstallpostgresql默认安装:14版本的pg错误代码如下:  问题原因:是pg......
  • CSP-S 星战题解
    更好的体验首先可以观察出一个性质,只要每个点的出度都是1,那么就一定会满足“每个点都能进入一个环”的性质,也就是说只要每个点出度为1,那么该情况就是合法的。然后考虑怎......
  • AHOI2022山河重整 题解
    首先容易得到\(O(n^2)\)的解法,容易观察得出任意时刻范围都应是\([1,\sum]\)否则直接寄了。考察\(i\)使得\([1,i]\)都能凑出但\(i+1\)不行。则有\(\sum\limits_......
  • Long数据类型序列化Json后传递给前端,产生的精度丢失的问题解决
    问题产生的原因Long类型的数据,如果我们在后端将结果序列化为json,直接传给前端的话,在Long长度大于17位时会出现精度丢失的问题。java中的long能表示的范围比js中number大,......
  • 洛谷--【P1618】三连击升级版题解 排列枚举+循环枚举+stl
    题目描述将 1,2,…,91,2,…,9 共 99 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!。输入格式......