QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: Qiuly

Posted at: 2026-02-14 02:06:44

Last updated: 2026-02-14 02:06:51

Back to Problem

题解

考虑将点放在平面上,对于 $i$ 放在 $(x,y)$ 满足 $x=\lfloor\frac{i}{B}\rfloor,y=\frac{i}{A}\bmod B$(我们认为 $\gcd(A,B)=1$,显然可以分组做)那么每次转移,如果走 $B$ 的边就是横着走,如果走 $A$ 的边要么走到下一行,要么走到斜下方。

于是有两种做法:第一种是竖着扫,记录轮廓线,状态数 $2^{B}$;第二种是横着扫,记录轮廓线以及首行状态(因为最后一行会转移到首行),状态数 $2^{2\lfloor\frac{n}{B}\rfloor}$。两个匀一下做到状态数不超过 $2^{\sqrt{2n}}$。

时间复杂度 $O(n2^{\sqrt{2n}})$。

Comments

No comments yet.