CF1622F Quadratic Set 题解

· · 题解

:::::info[题目基本信息] 考察:构造,哈希 hashing(2900)。
题目简介:
给定 n,有一集合 \displaystyle S=\bigcup_{i=1}^n\{i\},问 S 的最大子集 S' 满足 \displaystyle\prod_{x\in S'}x!\in\{p|p=k^2,k\in\mathbb Z\} 的大小,并给出一种 S'
数据范围:

时间限制:4s。
空间限制:250MB。
::::: 结论:答案下界为 n-3
:::::success[证明] 考虑凑平方。

\begin{aligned}\prod_{i=1}^ni!&=(\prod_{i=1}^{\lfloor\frac{n}{2}\rfloor}(2i-1)!(2i)!)\times([n\equiv 1\pmod 2]\cdot n)!\\&=(\prod_{i=1}^{\lfloor\frac{n}{2}\rfloor}(2i-1)!^2)\times(\prod_{i=1}^{\lfloor\frac{n}{2}\rfloor}2i)\times([n\equiv 1\pmod 2]\cdot n)!\\&=(\prod_{i=1}^{\lfloor\frac{n}{2}\rfloor}(2i-1)!^2)\times 2^{\lfloor\frac{n}{2}\rfloor}\lfloor\frac{n}{2}\rfloor!\times([n\equiv 1\pmod 2]\cdot n)!\\&=(\prod_{i=1}^{\lfloor\frac{n}{2}\rfloor}(2i-1)!^2)(2^{\lfloor\frac{n}{4}\rfloor})^2\times 2\lfloor\frac{n}{2}\rfloor!\times([n\equiv 1\pmod 2]\cdot n)!\end{aligned}

我们开始丢数,当 n 是奇数的时候,我们丢掉 n!,然后我们丢掉 2!\lfloor\dfrac{n}{2}\rfloor!,最后一定剩下一个完全平方数。
证毕。
::::: 这时我们仅需判断子集大小为 n,n-1,n-2 时是否有解即可。

这样就做完了。
时间复杂度为 \Theta(n\log n),空间复杂度为 \Theta(n)

code