1 条题解

  • 0
    @ 2025-8-24 23:17:46

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar E_firework
    重逢的时间短暂 所以一定毫无保留 用尽无声的电波 嘶吼

    搬运于2025-08-24 23:17:46,当前版本为作者最后更新于2025-06-23 15:39:35,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    你需要先特判 n2n\le2m2m\le2 的情况。

    结论1

    合法的方案中不存在下图所示的形状:

    结论1.png

    无论 ① 处的骨牌是横着放还是竖着放都会使得短边相接。

    结论2

    合法的方案中不存在下图所示的形状:

    结论2.png

    ① 处的骨牌竖着放都会使得短边相接,横着放会形成结论1中的形状。

    因为不会有长边拼在一起的连续的三块骨牌,让我们把两块长边拼在了一起形成了 2×22\times2 的正方形的骨牌称为配对骨牌,把剩下的骨牌称为未配对骨牌。

    结论3

    如果出现了下图所示的形状:

    结论3_1.png

    合法的方案中骨牌一定按下图放置。

    结论3_2.png

    首先 ① 处的骨牌一定是横着放的,否则会使得短边相接,于是变成下图的形状。

    结论3_3.png

    如果 ② 处的骨牌是横着放置的。

    结论3_4.png

    那么 ③ 处的骨牌一定是竖着放的,否则会使得短边相接。

    结论3_5.png

    ④ 处的骨牌一定是竖着放的,否则会使得形成结论1中的形状。

    结论3_6.png

    同理 ⑤ 处的骨牌一定是横着放的,⑥ 处的骨牌一定是竖着放的,⑦ 处的骨牌一定是横着放的,⑧ 处的骨牌一定是竖着放的……骨牌无限向外延伸,方案一定不合法。所以 ② 处的骨牌一定是竖着放置的。对称的位置也同理。

    结论4

    如果有一组配对骨牌,他们的短边两侧一定是方向不同的骨牌或者边缘。

    结论4.png

    ① 处的骨牌只能这样放,否则会使得短边相接或者形成结论1的形状。对称的位置也同理。

    结论5

    如果有一个未配对骨牌,他的长边两侧一定是方向不同的配对骨牌或者边缘。

    结论5_1.png

    如果 A 是一个未配对骨牌,考虑 ① 处的骨牌怎么放,他不能是竖着放的,不然会和骨牌 A 配对,或者和 A 形成结论3的形状,也会导致 A 配对。所以 ① 处的骨牌一定是横着放的。

    其他三个位置的骨牌同理。

    结论5_2.png

    结论6

    横着的未配对骨牌和竖着的未配对骨牌不会同时出现。

    假设我们有一个竖着的未配对骨牌。

    结论6_1.png

    ① 处的骨牌一定是横着放的,否则会使得短边相接。假设他是靠左放置的。

    结论6_2.png

    ② 处的骨牌一定是竖着放的,否则会使得短边相接。

    结论6_3.png

    骨牌 A 一定是未配对骨牌,否则会形成结论1中的形状。

    结论6_4.png

    于是竖着的未配对骨牌会一直向上下延伸直到碰到边缘,可以看作是一条从上边缘到下边缘的路径。横着的未配对骨牌会一直向左右延伸直到碰到边缘,可以看作是一条从左边缘到右边缘的路径。如果两者同时存在一定会在中间相交,这是不可能的。

    结论7

    一个合法的方案可以被横着或者竖着分成若干层,每一层中有相同数量的未配对骨牌。

    结论7.png

    我们可以先确定第一层中的所有未配对骨牌的位置,由结论4,5,6不难证明相邻的未配对骨牌之间一定是若干组配对骨牌。然后未配对骨牌向下一层延伸,下一层的未配对骨牌数量一定与上一层相同,下一层的未配对骨牌之间也一定是若干组配对骨牌。便可归纳得到结论。

    正解

    我们把每一层中的每组配对骨牌或者未配对骨牌看成一个节点,那么每条未配对骨牌的的路径一定是每一层的一个节点走向下一层的上一个或者下一个节点的,并且所有的路径是不相交的。因为 k32(n+m200)k\ge\frac{3}{2}(n+m-200),所以一条边缘上的未配对骨牌最多只有 592592 个,于是我们可以用 LGV 引理解决这个问题。

    正解1.png

    (该图对应着结论七中的方案)

    如果 nn 是层数,mm 是每一层的节点数,那么可以使用反射容斥在 O(nm)O(\frac{n}{m}) 的时间复杂度内求出从第一层的某一个节点到最后一层的某一个节点的方案数,如果 cc 是每层的未配对骨牌数,那么总时间复杂度就是 O(nmc2+c3)O(\frac{n}{m}c^2+c^3)。因为有 cmc\le m 所以时间复杂度不超过 O(nc+c3)O(nc+c^3),可以通过本题。

    • 1

    信息

    ID
    9937
    时间
    3000ms
    内存
    512MiB
    难度
    7
    标签
    递交数
    0
    已通过
    0
    上传者