做题记录 25.5.28
\(\textcolor{purple}\odot\) CF1826F Fading into Fog
先问一次 \(y=0\),然后问一次 \(x=0\),得到 \(x\) 坐标的集合与 \(y\) 坐标的集合,从而得到 \(n^2\) 个可能的点,然后选择一条斜率足够小的直线(例如 \(y=\frac x{1000}\),需要保证在 \(1e-3\) 的误差下,\((x,y)\mid |x|\le 100,|y|\le 100,x,y\in \mathbb Z\) 投影到的点可以被区分),从而得到真正的 \(n\) 个点,显然必须询问至少三次
实现时需要注意误差
时间复杂度 \(O(\sum n^3)\),可以做到 \(O(\sum n\log n)\)
\(\textcolor{purple}\odot\) CF1824B2 LuoTianyi and the Floating Islands (Hard Version)
当 \(2\nmid k\) 时显然重心唯一,因此期望为 \(1\)
否则对于一种选择点的方案,重心数量为\(k\) 个点的虚树的两个重心在原树上的路径上的点的数量,等于两个重心在原树上的距离加一,把 \(+1\) 提到期望外,考虑如何计算合法方案重心距离之和
枚举边 \((u,f_u)\),则它的贡献为
总时间复杂度 \(O(n)\)
\(\textcolor{blue}\odot\) CF1826E Walk the Runway
理出 \(ok_{i,j}\) 表示是否能 \(i\to j\),得到后容易 \(O(n^2)\) \(dp\)(按任一维度排序的顺序转移)
考虑如何计算 \(ok_{i,j}\)
枚举每个维度,将 \(n\) 个位置按这一维度从小到大排序,扫描的过程中用 bitset 维护目前为止合法的位置,然后按位与到 \(ok\) 上
时间复杂度 \(O(mn\log n+\frac{n^2m}\omega)\)
\(\textcolor{purple}\odot\) CF1824C LuoTianyi and XOR-Tree
基本类似 [NFLS #P13045. 智慧树](http://www.nfls.com.cn:10611/p/P13045
用 unordered_set 和 unordered_map 可以做到 \(O(n\log n)\),但常数过大,set 和 map 做到 \(O(n\log^2 n)\) 足够通过
\(\textcolor{purple}\odot\) CF1823F Random Walk
对于点 \(u\),显然所有边 \(u\to \ast\) 经过的次数都相同,令 \(f_u\) 表示 \(u\) 的出边的期望经过次数,则 \(f_t=0\),点 \(u\) 的答案等于 \(f_u\times deg_u\),特别地 \(t\) 的答案为 \(1\)
考虑计算 \(f\)
若 \(u\to v\) 在 \(s\to t\) 上,则 \(u\to v\) 的经过次数恰好比 \(v\to u\) 的次数多 \(1\),因此 \(f_u=f_v+1\)
否则双向经过次数相同,\(f_u=f_v\)
以 \(t\) 为根进行一次 \(\text{dfs}\) 容易求出 \(f\)
时间复杂度 \(O(n)\)
\(\textcolor{purple}\odot\) CF1823E Removing Graph
图由若干环组成,整张图的 \(\text{SG}\) 函数值等于所有环的 \(\text{SG}\) 函数值的异或和,考虑求出一个 \(n\) 点的环的 \(\text{SG}\) 函数值
令 \(n\) 点的链的函数值为 \(\text{sg}(n)\),则
令 \(n\) 个点的环的函数值为 \(\text{SG}(n)\),则
找规律可得 \(\text{SG}(n)=\begin{cases}\left\lfloor\frac nl\right\rfloor&n<l+r\\0&n\ge l+r\end{cases}\)
时间复杂度 \(O(n)\)
\(\textcolor{purple}\odot\) CF1819C The Fox and the Complete Tree Traversal
可证只有毛毛虫的情况合法,这种情况的构造是容易的

浙公网安备 33010602011771号