2023.5.11 再上车 春天开始落叶

「AGC039E」Pairing Points

\(n>1\) 时,有一个很好的性质:一条边至少要与一条边相交,不然就会有不止一个连通块。

考虑圆上 \(1\) 号点的连边将圆分割成了两半,有两种情况:

  1. 所有边均为二部间的连边,这是简单处理的。

  2. 一条边跨越二部,剩下的边均是内部的边。(如果不止一条,则会连出环)

那么有一个 dp,记 \(f(l,r,i)\) 表示编号为 \([l,r]\) 的点,\(i\) 号点对外部连边,内部连边的方案数。直接转移是 \(O(n^7)\) 的,可以优化到 \(O(n^5)\)

「AGC036F」Square Constraints

简单题。

考虑所有 \(i\in [0,n)\) 的限制都是一个“后缀限制”,所有 \(i\in[n,n+n)\) 的限制都是前缀限制。

把其中一者容斥成另一者便可以简单 dp,时间复杂度 \(O(n^3)\)

「AGC035E」Develop

我会 \(k=2\)

「AGC035D」Add and Remove

数据范围很小,考虑优秀的搜索。

枚举最后一个被删除的数,他对答案贡献的系数是 \(2\),而 \(a_1,a_n\) 对答案贡献的系数为 \(1\)。记下来两侧对答案贡献的系数,然后搜索即可。

状态数是 \(O(n^22^n)\) 的,但需要哈希表存储。直接搜是 \(O(3^n)\) 的,已经足以通过。

「AGC034F」RNG and XOR

简单题。

考虑答案的集合幂级数 \(F(x)\),则有 \(F(x)A(x)+C(x)=F(x)\)

其中 \(C(x)\) 是转移的系数,有 \([x^s]C(x)=1(s\neq 0)\)

考虑三者的 \(FWT\) 数组 \(f(x),a(x),c(x)\),有 \(f(0)a(0)+c(0)=f(0)\),因为 \(a(0)=1\),可以得到 \(c(0)=0\),也就会有 \(C(0)=1-2^n\)

\(a(x)\)\(c(x)\) 可以通过 \(FWT\) 算出,对于 \(x\neq 0\),我们可以根据 \(f(x)a(x)+c(x)=f(x)\) 计算出 \(f(x)\) 的值(此时逆元存在)。

\(f(0)=-\sum_{x\neq 0}f(x)\),这是因为 \(\sum f(x)=2^n\times F(0)=0\)

通过 \(f(x)\),我们可以用 \(IFWT\) 还原出 \(F(x)\)

时间复杂度 \(O(n2^n)\)

「AGC032E」Modulo Pairing

如果没有取模的限制,那么显然是最小配最大,次小配次大这样依次匹配。而有了这个限制,我们就需要找到一个断点,使得:

  1. 两边均为上述匹配方式。

  2. 左边的取模无效,右边的取模有效。

这可以二分,时间复杂度 \(O(nlogn)\)

「AGC030E」Less than 3

在不同数之间用“竖线”隔开,由于有连续段的限制,每次操作为将一条线左移或者右移动。这些线不能碰撞,且只能在头尾产生或被消灭。

序列相等当且仅当竖线一一对应,且奇偶性正确。

我们认为头尾初始都有无数多条线,然后枚举偏移量 \(\Delta\) 便可以 \(O(n^2)\) 求解。

这便可以通过此题,但可以更优。

将线的移动放在数轴上考虑,就会有好多个形如 \(|\Delta-k_i|\) 的式子,可以开个桶 \(O(n)\) 求解,也可以通过中位数直接算出最优的 \(\Delta\)

posted @ 2023-05-11 22:11  Nesraychan  阅读(136)  评论(0)    收藏  举报