CF297D Color the Carpet

题目描述

即使是北极熊躺在冰上也会觉得冷。因此,一只名叫 Alice 的北极熊打算制作一块地毯。这个地毯可以看作是一个高为 $h$、宽为 $w$ 的网格,然后被分成 $h \times w$ 个方格。Alice 打算为每个方格涂上 $k$ 种不同颜色中的一种,颜色编号从 $1$ 到 $k$。她可以选择不用所有颜色。 然而,涂色有一些限制。对于每一对相邻的方格(即共享一条边的方格)$x$ 和 $y$,都有一个配色约束,形式如下之一: - $color(x) = color(y)$,或者 - $color(x) \neq color(y)$。 配色约束的示意图如下: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF297D/535d1d4ec9a1bcb4f1f5ac12060cde0f65471360.png) 理想情况下,Alice 希望满足所有配色约束。但在北极生活其实很艰难,并不总是能做到这点。幸运的是,如果她能满足至少 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF297D/c7b5e8f543c3882ba6f2a662e01781b4de30f8c7.png) 的配色约束,她也会很开心。 如果她有 $4$ 种颜色,可以按如下方式为地毯涂色: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF297D/84535e9e280c4fb80d9cbe6a8b779a69a879098d.png) 她很开心,因为满足的配色约束数量为 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF297D/050547ba0080dee4ce4e2010a283122ee46b002c.png),并且 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF297D/93a2fe0ea2a5cac28f71987aac7a9527d1566697.png)。你的任务是帮助她为地毯涂色。

输入格式

第一行包含三个整数 $h, w, k$,表示地毯高度、宽度以及可用颜色种数,满足 $2 \leq h, w \leq 1000, 1 \leq k \leq w \cdot h$。 接下来的 $2h-1$ 行描述从上到下、从左到右的配色约束。它们依次包含 $w-1, w, w-1, w, \ldots, w-1$ 个字符。每个配色约束由字符 "E" 或 "N" 表示,"E" 表示 $=$,"N" 表示 $\neq$。 配色约束的顺序与示意图保持一致。

输出格式

如果存在一种涂色方式,能满足至少 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF297D/c7b5e8f543c3882ba6f2a662e01781b4de30f8c7.png) 个配色约束,则第一行输出 "YES"(不含引号)。接下来 $h$ 行,每行输出 $w$ 个整数,表示每个方格的颜色编号。 否则输出 "NO"(不含引号)。

说明/提示

由 ChatGPT 5 翻译