2.11 それは命の证 ——ARC116~118

冰艳天使临何处 白洲昨夜紫花开

ARC116

ARC116D I Wanna Win the Game

直接数位 DP。\(f(i,j)\) 表示考虑前 \(i\) 位,总和为 \(j\) 的方案数。转移枚举该位 \(1\) 的个数。使劲分析一下发现总复杂度 \(O(n^2)\)

ARC116E Spread of Information

先二分,然后再进行贪心。\(f_u\) 表示 \(u\) 子树中选点个数,\(h _u\) 表示子树中关键点到 \(u\) 的最小距离,\(g _u\) 表示子树中未满足的点到 \(u\) 的最大距离。直接做即可。

ARC116F Deque Game

考虑一下只有一堆的方案。容易发现长度为奇数那么后手获利,长度为偶数那么先手获利。于是一定先去尝试抢偶数的先手,然后把偶数变为奇数的情况。于是一定是先轮流挑偶数的先手步(删最左还是最右),之后所有都是长度为奇数了。长度为偶数不会改变先后手。所以就做完了。

ARC117D Miracle Tree

可以发现等价于在树上沿着树边游走一下,最小化每个点的到达时间。这个问题是容易的。

ARC117E Zero-Sum Ranges 2

考虑在坐标系上画出折线,从上往下线头 DP。\(f(i,j,k,x)\) 表示考虑到 \(y\ge i\) 的部分,有 \(j\) 段线头,线总长为 \(2k\),对 pair 数量的贡献为 \(x\)。直接 DP 可以枚举 \(a\) 表示在 \(i\) 处合并的线头数量,\(b\) 表示在 \(i\) 处新创建的线头段数,那么容易发现转移只与 \(b-a\) 有关。对每种 \(b-a\) 预处理转移系数和即可。然后考虑对答案的贡献。我们在 \(y=0\) 处枚举上下半区域的线头数量,线头长度和,以及在 \(0\) 处合并的线头数量。去除冗余变量的枚举,总复杂度 \(O(n^6)\),但很快。

ARC117F Gateau

首先我们二分答案,然后不难发现一个关于前缀和的差分约束模型。把图画出来,发现可以抽象成这样:有两排点,其中每排点都有从右往左的链边,同时每列都有上下互通的边,同时第二行的最左侧点还指向第一行的最右侧点。如果没有最后那条边那么就没有负环,所以负环一定经过这条边。DP 求出从右上到左下的最短路即可。求右下到左上的最短路可以先 DP 一次,然后再用这条边松弛一次,再 DP 一次。容易发现这也是对的。

ARC118

ARC118D Hamiltonian Cycle

不会构造怎么办???我们令 \(n\)\(a^i\) 的模 \(p\) 的循环节,\(m\)\(\min j\) 使得 \(b^j\equiv a^i\)。那么我们画张 \(n\times m\) 的表格,其中一定要每个数出现一次,否则一定不行。那么对于一个网格图的哈密顿路是容易的。就好了。

ARC118E Avoid Permutation

考虑 DP:\(f(i,j,k,0/1,0/1)\) 表示考虑目前走到 \((i,j)\),路径上有 \(k\) 个没有被决定的点被钦定,且该行/列是否有被钦定的点,容斥系数之和。于是令 \(c\) 表示未被决定的点的数量,那么答案就是 \(\sum f(n,m,k,p,q)\times (c-k)!\)

ARC118F Growth Rate

首先令 \(g_i\) 表示 \(a_i\) 的上界,那么有转移 \(f_{i,j}=s_{i+1,g_{i+1}}-s_{i+1,a_ij-1}\)。容易发现 \(f\)\(n-i+1\) 次多项式,所以考虑直接插值。

由于只有 \(\log M\) 个非 \(1\) 元素(\(1\) 元素直接做前缀和转移),所以总复杂度 \(O(n^2\log m)\)

posted @ 2024-03-26 08:27  LarsWerner  阅读(3)  评论(0编辑  收藏  举报