3. 为什么染色有用?
将 (行号 + 列号) 为偶数的格染黑,其余染白。每一步水平或竖直移动都改变奇偶性,所以每块多米诺恰好覆盖一黑一白。若覆盖存在,黑格数 B 必须等于白格数 W;总格数也必为偶数。
B = W 对任意挖洞棋盘仅是必要条件,不是充分条件。例如试试“分离格”:总量可能平衡,但邻接关系仍可能阻止覆盖。“共边瓶颈”则展示连通且黑白平衡仍不可铺。断连棋盘必须每个分量各自可铺;总量不能跨分量抵消。完整矩形则可在偶数边方向两两配对:非空矩形当且仅当面积为偶数时可铺。
把剩余格作顶点,共边作边,便得到黑白二分图。铺法等价于覆盖全部顶点的匹配。程序从每个未配黑格沿“未选边 → 已选边”寻找增广路,翻转沿路选择可使匹配多一条;找不到增广路时匹配最大(若存在更大匹配,两匹配的对称差中必有增广路)。
若 B ≠ W,颜色计数就是不可能证据。若 B = W 而仍有未配黑格,从全部未配黑格沿交替路可达的黑格组成 S,所有相邻白格组成 N(S)。最大性保证这些白格都已配对,其配对黑格也在 S;S 还含至少一个未配黑格,所以 |N(S)| < |S|。这些黑格需要不同的白格伙伴,却没有足够邻居,故不可能覆盖。这就是本页显示的 Hall 障碍证据。
核验后,每对骨牌标相同编号;若显示 Hall 障碍,橙框是 S,青框是 N(S),并列出坐标便于手算核对。空棋盘约定由 0 块骨牌覆盖;奇数格与同色挖角自然由计数或匹配处理。最多 12 × 12 格,无联网或学习记录写入。