P15348 [TOIP 2025] 同色樓梯和雙色樓梯

Description

在一個 $m\times n$ 的方格圖中,每一格都有恰一種顏色,我們用大寫英文字母代表每種顏色。 所謂的「樓梯」是指:連續的某些直行的區段,這些區段的底部位置(下方所在的列)必須是一樣的,而高度則是自左而右逐步加一。注意,一個樓梯圖形的高度與寬度必然是相等的。 所謂的「同色樓梯」是指:一個樓梯其中所涵蓋方格的顏色皆相同。 所謂的「雙色樓梯」是指:一個樓梯其中所涵蓋方格的顏色有恰兩種。 按照以下的範例圖形中,藍色、黃色與綠色分別是寬度(高度)為 $2$、$3$ 與 $4$ 的「同色樓梯」。請注意,樓梯與樓梯可能重疊,例如藍色 C 樓梯旁還有一個C樓梯。此外,大樓梯中必然有小樓梯,例如下圖中寬度 $3$ 的 B 樓梯中有 $3$ 個寬度 $2$ 的樓梯。寬度 $4$ 的 A 樓梯中則含有 $3$ 個寬度 $3$ 的樓梯以及 $6$ 個寬度 $2$ 的樓梯。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/jps21cp8.png) ::: 以下的範例圖形中,有標註出所有「雙色樓梯」。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/xyq09uf7.png) ::: 你的任務是算出所有寬度(高度)的同色樓梯或雙色樓梯分別有幾個。

Input Format

$$ \begin{aligned} &m \; n \\ &a_{1,1} a_{1,2} a_{1,3} \cdots a_{1,n} \\ &a_{2,1} a_{2,2} a_{2,3} \cdots a_{2,n} \\ &a_{3,1} a_{3,2} a_{3,3} \cdots a_{3,n} \\ &\vdots \\ &a_{m,1} a_{m,2} a_{m,3} \cdots a_{m,n} \\ &q \end{aligned} $$ * $m$、$n$ 分別代表區域高度、區域寬度。 * $a_{i,j}$ 代表該區域的顏色。 * 若 $q=1$ 代表詢問同色樓梯數量。若 $q=2$ 代表詢問雙色樓梯數量。

Output Format

$$ \begin{aligned} &k \\ &s_1 \; s_2 \; s_3 \; \cdots \; s_k \end{aligned} $$ * $k$ 為一非負整數,代表寬度(高度)最大的同色樓梯(雙色樓梯)的寬度(高度)。 * $s_i$ 皆為非負整數,代表寬度(高度)為 $i$ 的同色樓梯(雙色樓梯)數量。 * 若 $k = 0$,第二行輸出一空行。

Explanation/Hint

### 測資限制 * $1 \le m \le 4000$。 * $1 \le n \le 4000$。 * $a_{i,j}$ 為大寫英文字母。 * $m$ 和 $n$ 皆為整數。 * $q \in \{1,2\}$。 ### 評分說明 本題共有五組子任務,條件限制如下所示。每一組可有一或多筆測試資料,該組所有測試資料皆需答對才會獲得該組分數。 | 子任務 | 分數 | 額外輸入限制 | | :------: | :----: | ------------ | | 1 | 5 | $q=1$,所有 $a_{i,j}$ 相同。 | | 2 | 9 | $q=1$,$m \le 200$, $n \le 200$。 | | 3 | 22 | $q=1$,$m \le 200$。 | | 4 | 33 | $q=1$。 | | 5 | 31 | $q=2$。 |