Loading

【2023.7.18】交汇的光与影,答案落定覆上姓名

2023.7.18

hdu 多校被干碎了。

Resurrection

发现从操作的角度去考虑树的刻画非常困难,考虑直接对树的形态刻画。

一个显然的必要条件是,对于任意 \((u,f_u)\in G\)\((u,f_u)\)\(T\) 中的连边不会是相交而不包含,只存在相离和包含两种情况。由贪心构造得出其充分性。

使用特殊的自顶向下的刻画方法,\(f(u,i)\) 表示节点 \(u\)\(j\) 个可以连的祖先节点。

转移方程 \(f(u,i)=\sum\limits_{0\le j\lt i}\prod\limits_{v\in son_u} f(v,i-j+1)\)。前缀和优化做到 \(\mathcal O(n^2)\)

Good Contest

[APIO2016] Boats.

考虑 \(r_i\gets r_i+1\),区间变为 \([l_i,r_i)\),离散化区间,\(f_{i,j}\) 表示第 \(i\) 个数取第 \(j\) 个区间的方案数。

转移方程 \(f_{i,j}=\sum\limits_{k=0}^{i-1}\sum\limits_{p\gt j} f_{k,p}\binom{L+i-k-1}{i-k-1}\),根据吸收恒等式计算前缀和即可。\(\mathcal O(n^3)\)。存在分段函数的相同复杂度做法。

Array GCD

考虑枚举 gcd 为 \(d\),显然 \(d\)\(a_1,a_1-1,a_1+1,a_n,a_n-1,a_n+1\) 的因数之一。枚举量 \(\mathcal O(\pi(V))\),基本可以忽略。

考虑计算答案。对于 \(a_i\),如果 \(d|a_i\) 则记 \(c_i=0\),若 \(d|(a_i-1)\)\(d|(a_i+1)\)\(c_i=B\),否则 \(c_i=\rm inf\)

如果不存在 \(c_i=\rm inf\),那么先选上所有 \(c_i\),然后选一个子区间变为 \((r-l+1)\times A\),最小子段和可以 \(\mathcal O(n)\) 实现。

存在 \(c_i=\rm inf\) 是类似的,假设左右边界为 \(\langle l,r\rangle\),那么 \([1,l-1]\) 要选一个后缀,\([r+1,n]\) 选一个前缀,枚举即可。总复杂度 \(\mathcal O(n\pi(V))\)

Count Multiset

这种东西大概理解一下是一个 \(\mathcal O(n^2\ln n)\)\(\mathcal O(n^2\sqrt n)\) 的东西,要看能不能发现一些东西。

题中这个形式很 shaber,考虑集合转成不降序列,然后不降序列又有一个经典套路是转差分,那么题中其实要求不能有不小于 \(m\) 个连续的 \(0\),然后对于 \(k\in [1,n]\) 计数,第 \(i\) 个位置有一个权值 \(i\)

这个东西非常棒啊!简单的 dp:\(f(i,j)\) 表示前 \(i\) 个数和为 \(j\),然后枚举上一个不是 \(0\) 的位置 \(k\) 和填的数。\(f(i,j)=\sum\limits_{x=1}^{\lfloor \frac{j}{i} \rfloor}\sum\limits_{k=\max(0,i-m)}^{i-1} f(k,j-ix)\)。前缀和优化 \(\mathcal O(n^2\ln n)\),非常好。

Game on Tree

主播的含金量!为什么 HDU 多校大伙都会这个啊 /ng。

场上瞎试了若干种可以硬套换根的东西,然后喜提九发罚时,为我队成为同题垫底打下了坚实的基础!

考虑这个东西,很难用人类智慧去寻找最优策略,考虑 SG 函数,然后一个重要结论是 \(\mathrm{SG}_u=\bigoplus\limits_{v\in son_u} \mathrm{SG}_v+1\)

证明的话,首先考虑拆分子树,根据 SG 函数的结论,\(\mathrm{SG}_u\) 就是各个子游戏的异或和。

然后考虑根和下面这个子树,显然对于子树里的任意一种状态,我们都能随后切断根和子树的连边,这样的话接下来的 SG 就是子树 SG + 1。异或得解。HDU 多校那个题就是这个东西套一个换根。

posted @ 2023-07-18 21:06  Skylakes  阅读(30)  评论(0)    收藏  举报