写题-2025.11
2025.11.25
开始写超级水题来复健
……难道我只能写写橙题了吗
洛谷 P5887 Ringed Genesis
最开始把 \(k\) 看成了每只兔子不同,吓了一跳,想了一会儿没想出来。感觉能做,留个坑。
由于 \(\gcd(a,b) \mid (ax+by)\),所以只需要取步长 \(k\) 和环长 \(n\) 的最大公约数,就得到兔子在环上能走出的最小非零位移。
(取 \(a=k\) 为步长,\(b=n\) 为环长,就可以把 \(ax-by\) 理解为走了\(x\) 步再减去 \(y\) 圈后得到的位移)
于是把所有的 \(p_i\) 对 \(\gcd(k,n)\) 取模,得到一系列最靠近 \(0\) 的出发点,再 dp 即可。
甚至求 \(\gcd\) 还写错了……耻辱。
洛谷 P1028 [NOIP 2001 普及组] 数的计算
设 \(dp_i\) 表示以 \(i\) 开头的合法数列的数量,则有:
$ dp_i=1 + \sum_{j=1}^{\lfloor \frac{i}{2} \rfloor}dp_j$
换成正向写法——把 \(dp_i\) 加到 \(dp_{2i},...,dp_n\) 上,就做完了。
小小优化,把上界从 \(n\) 改成 \(\lfloor \dfrac{n}{2} \rfloor\)。
真正优化,把正向更新的区间加改成差分写法,时间变成 \(O(n)\)。
(发现开了 O2 之后 \(10^3\) 下 \(O(n)\) 和 \(O(n^2)\) 没什么区别 )
2025.11.26
洛谷 P1106 删数问题
简单贪心,好耶。
先考虑到如果能搞出先导 \(0\) 一定是最优的,但这种想法被后续的策略包含了。
考虑对数字大小影响最大的是首位,所以如果能把首位变小一定不劣。
于是,进行 \(k\) 次寻找,如果当前位的数字比更高一位的小,就删掉后者;如果找不到就删去末尾(这是容易验证的)。
感觉“最优子结构”的性质是显然的,有空回来补个证明。
看了题解发现基本是小年龄同志们的舞台,缺少数学化的证明,然而已经交不了题解了,可惜。
发现自己近来做贪心时总是很想给出严谨证明。

浙公网安备 33010602011771号