等价条件转化
一种涂色方案被称为“有效的”,当且仅当存在一条从 (0,0) 到 (n,n) 的单调路径(每次向右或向下),使得路径左下方区域不含金色,右上方区域不含银色。
可以证明,该条件等价于:不存在金色单元格 A 和银色单元格 B,使得 A 在 B 的“左下方”(即若 A 坐标为 (ia,ja),B 为 (ib,jb),则 ia≤ib 且 ja≤jb)。
若存在这样的对,任何单调路径均无法同时满足“金不在左下”与“银不在右上”;反之,可利用银色单元格的下闭包构造一条优美路径。
理想与路径的对应
定义银色单元格集合的向下闭包(在坐标偏序下)为一个理想 I。根据上述等价条件,所有金色单元格均不在 I 内。此时,I 的极大元必须为银色,而 I 内部的其余单元格可以涂银或铜;I 外部的单元格可以涂金或铜。
有一个由 n×n 个单元格构成的壁画,每个单元格可以涂上金色、银色或铜色中的一种,因此共有 3n×n 种不同的涂色方案。
壁画的格点用 (i,j) 表示,其中 i 为从上到下的格线编号,j 为从左到右的格线编号,编号从 0 开始。一位画家从左上角的格点 (0,0) 出发,每次可以沿着竖线向下移动一格到 (i+1,j),或者沿着横线向右移动一格到 (i,j+1),最终到达右下角的格点 (n,n)。画家走过的路径将壁画上的单元格分成两个区域:路径左下方的区域(由 (0,0),(n,0),(n,n) 与路径围成)和右上方的区域(由 (0,0),(0,n),(n,n) 与路径围成)。
如果一条路径满足:其左下方区域中不包含任何金色单元格,且右上方区域中不包含任何银色单元格,则称这条路径是「优美的」。若对于一种涂色方案,存在至少一条优美的路径,则称该涂色方案是「有效的」。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.