dottle的月赛

醒来

1
2
3
4
5
“那羡慕的烟火去哪了,那信任的朋友疏远了。

我年幼时坚持过什么,你们还记不记得。”

回想自己儿时的样子,已和现在大不相同了;但想想昨天的自己,却与今天没什么差异。这不经意的改变,让我们已经是另一个样子了。

很有感觉。

第一步判断有没有解:我个人觉得这步十分有技术,我真的没想到拿二分图描述他。

首先考虑 \(\mathrm{popcount}\) 的奇偶性。

那么必然是交错的走,所以 \(|\mathrm{odd-even}|\le 1\)

然后如果这个图不连通的话,也无解。就是说: \([l,2^k-1]\) 平移后与 \([2^k,r]\) 无交必然无解。

然后我们就来构造。

part1

首先感觉来说,我们必然是要找到一个分界点 \(p\),然后从 \(p\) 走到 \(p+2^k\),然后分别周游 \([l,2^k-1]\),\([2^k,r]\)


我们希望从 \(p\) 周游 \([l,r]\)

首先,若 \(p=r\) 这是容易构造的,我们可以发现按二进制拆分后,当在 \(2^k\) 小的地方。可以直接走入相邻的 \(2^k\) 大的地方。

否则有点困难。

我们始终是不希望,如果存在一个分界点,屡次跨过分界点的。

所以考虑如果我们先从 \(p\) 周游 \([l,\mathrm{lim}]\) 结束于 \(q\),然后从 \(q\) 将后半部分走完。

直接构造原问题困难时,不妨想想简单情况,看简单情况的构造能给我们什么启示

是的我们要去构造如果 \(r=2^k-1\) 情况的周游方案。

part2

一步转化是 \(p\to q\Longleftrightarrow 0\to (p\mathrm{\ xor\ }q)\)

\(p=(p\mathrm{\ xor\ }q)\)

如果 \(p\ge 2^{k-1}\) 的话可以暴力环游右边后转为子问题

否则,考虑我们先直走左面,然后将相邻的 \(u_i\to u_{i+1}\) 变成 \(u_i\to (u_i+2^{k-1})\leadsto (u_{i+1}+2^{k-1})\to u_{i+1}\)

这样上半也是子问题。(从 \(0\to 1\)

part3

这个第二种构造是很有启示性的。我们大概已经解决了这个周游的问题。

我们每次只看 \(p\) 所在的块,然后只构造这个块内的答案,断掉一条边转成上一个块的子问题。

然后只需要解决后半部分,从 \(q\) 周游后面那些部分。

这其实可以先从最后面走到 \(p\) 所在块内任意一个点,把这个点当成 \(q\),然后进行上述构造即可。

我们只需要保证 \(p\not=q\) ,这也是必然的,因为如果,\(p=q\) 并且后半的终止颜色符合条件的话,那么只能说明前半的颜色都不对了,这与有解矛盾。

那么大概就完成了,这个做法实际上极其冗余。不如多老师的构造。

因为这个遍历 \(k\) 维超立方不管终点啥样实际上几乎都是同构的。

多老师直接给出了更简洁的part2做法。


doki

描述计数对象是解决计数题第一步,也是最重要的一步。

为了更好地刻画性质,我们通常会尝试,构造双射。

我们发现,最simple的dp会算重,原因是 \(0\) 会随便跑。那么我们就很套路的将 \(0\) 钦定放到最前。

为了方便刻画,现在可以把这个整数序列映射到一个颜色序列上。


一共三种颜色 \(\mathrm{x,y,z}\)

\(\mathrm{x}\) 代表是前缀最大值,\(\mathrm{z}\) 是紧紧跟着 \(\mathrm{x}\) 的那些删去 \(\mathrm{x}\) 会变成前缀最大值的数。

\(\mathrm{y}\) 则是我们认为他们啥用没有,摆烂的那些值。

想一想,一共限制如下:

  1. 如果前面是 \(\mathrm{yxz}\) 那么这一位必定不能填 \(\mathrm{z,x}\) 因为这样产生 \(0\) 但是不是最靠前的。
  2. 如果前面出现过 \(\mathrm{yy}\) 那就不能出现 \(\mathrm{xzx,xzy}\) 了。理由同上

特别的我们需要记录出没出现过 \(-1\)

所以我们可以很蠢的设 \(\mathrm{3\times 3\times 3\times 2\times 2}=108\) 种状态,暴力转移。可以通过。

多老师压成了 \(11\) 个状态,据他说是花了30min写出来的。。很强大。

兔子有个多项式做法,可是很可惜我只看到了刻画组合性质就结束了。

orz小粉兔


dottle的月赛
https://proton-z.github.io/2022/09/27/P8553&P8544/
作者
Imitators
发布于
2022年9月27日
许可协议