试证玄学性质
查看原帖
试证玄学性质
287420
方塘楼主2021/10/24 00:45

问题见求助玄学性质 (第一次写,表述不清请见谅)

0基本的发现

首先

我没写return 0;(真的)

a队列里只剩最后一个数字 k 时,因为答案要求按字典顺序最优,应从左边出队。

即最后一位一定为L。

其次

a 队列中的第一个数字 (左起)k,第二个为 x,最后一个为 y
a 队列可记为

kx...k...y

b 队列为

k...k

a 队列中,k 被出队。
下一个被出队的只能是 xy
也。
也就是说b 队列为

kx...xk
ky...yk

则倒数第二个被出队的是 xy

也就是说,还剩两个数字时,a 队列为

x,k 或 k,x 或 y,k 或 k,y

即假使有解,则a 队列为

kx...xk...y

kx...kx...y

kx...yk...y

kx...ky...y

那么,我们只需判断,第二个k的左和右端是否有x或y。

如果左边有 x,则正着多一个 L,反着多一个 L

如果右边有 x,则正着多一个 L,反着多一个 R

如果左边有 y,则正着多一个 R,反着多一个 L

如果右边有 x,则正着多一个 L,反着多一个 R

然后就会出现新的x,新的y。

重复此操作,从两边和中间同时推进,就是n-1次。

T组数据,左右各n次,算法O(T·n)

代码明天去学校再发 (考试没加return 0 啊啊啊)

(第一次写,表述不清请见谅)

2021/10/24 00:45
加载中...