非传统题
P8866
著名题目呀。好像并没有那么困难?
下面称“栈”为 deque。
\(k=2n-2\) 一会就想出来了。控制每个 deq 最多只含有两个不同元素。然后每次空出来一个 deq 不用。简单讨论就可以维护这件事情。
那么这个 deq 是关键的。可以推广这个想法。
\(n=2,k=3\) 的时候,仍然延续上面的想法,假如我牌堆是 \(1,2,3,1,\dots\) 进来大概就是这样。

那为什么 \(3\) 不放在右边的栈里?因为我下一个是 \(1\)。
也就是说当我们放到第 \(k=2n-1\) 种元素,且前面 \(n-1\) 个 deq 都放满了之后,我们要额外考虑下一个元素。
另一种情况是 \(1,2,3,2,\dots\)。

略有不同的一点是,这里没有空 deq作为 \(2\) 操作的工具了。那咋办?
注意到接下来无论是 \(1,3\) 都可以消掉一个;而下一个是 \(2\) 的时候,我再讨论下下一个:这时候无论是 \(1,2,3\) 都可以消掉了。
哦。那我明白了。核心只有这两种情况:


而这两种情况是可以互相转化的。
下面情况转化到上面是平凡的,而上面转化到下面可能需要对后面很多个牌进行讨论,不过也不难。
但是他妈太史了。你需要维护:
- 空栈集合。
- 有一个元素的栈集合。
- 每个数在哪一个栈中。
当然不会无解,因为最后会消干净。于是这个题目就做完了。
时间复杂度不重要。
P9165
限制:\(Len \le 750\)。
首先每个数 copy 若干遍。那这样会寄的原因就是太不保险了。
那我们考虑问题在哪:狡兔三窟。那他有 100 个关键值,如果有多一些关键值(比如说 150 个),每次我只要随机保留,剩下来 \(\ge 100\) 个关键值就可以了。
那考虑算出来 \(A(x)=\sum_{i=0}^99 a_i x^i\) 的 150 个点值。每个点值重复五遍。正确率非常高。最后拉插回去。
P10539
- 解法一
注意到设置定值 \(n\),然后对于 \(i\ge 2\),将 \(i\) 和 \(X \bmod (i-1) + 1\) 连边。注意到当 \(n\) 足够大(1000 就够)的时候,保留的边是足以确定 \(X\in [0, 10^18]\) 的。最后 exCRT 回去(\(O(n^2)\) 暴力调整也行)。
- 解法二
对于 \(X\) 的 60 个二进制位,每个 bit 设置 80 个点,对于这 80 个点,给她们两两配对。若 \(X\) 的这一位是 1,那么给所有这些点对连边。否则不连。然后打乱。正确概率很大。

浙公网安备 33010602011771号