#P7668. [JOI2018] Dango Maker

[JOI2018] Dango Maker

题目背景

你是一名专业的糕点师,制作团子,日本甜饺子。现在,你要串饺子了。

题目描述

饺子被放置在具有 NN 行和 MM 列的单元格网格上。每个单元格包含一个饺子。每个饺子的颜色是红色(R\texttt{R})、绿色(G\texttt{G})或 白色(W\texttt{W})。
您将从单元格中选择三个连续的饺子,并将它们串成一根棍子。所选的三个连续饺子的方向必须是从左到右,或从上到下。
现在,您要按此顺序制作颜色为红色、绿色、白色的饺子串。你想做尽可能多的饺子串。串到棍子上的饺子的顺序必须与从单元格中选择的饺子的顺序相同。一个饺子上不能串多根棍子。 你能做多少串饺子?
现给定放置在单元格上的饺子的颜色,请编写一个程序来计算您可以制作的饺子的最大数量。颜色必须按此顺序为红色、绿色、白色。

输入格式

输入的第一行包含两个空格分隔的整数 NNMM。接下来的 NN 行的第 ii 行包含大小为 MM 的字符串,由 R\texttt{R}G\texttt{G}W\texttt{W} 组成。该字符串的第 jj 个字符是从上数第 ii 行、从左数第 jj 列的饺子的颜色。

输出格式

输出一个整数饺子串的最大数量。

3 4
RGWR
GRGG
RGWW
3
4 4
RGWR
GRRG
WGGW
WWWR
4

提示

数据规模与约定

对于 100%100 \% 的数据,1N30001 \leq N \leq 30001M30001 \leq M \leq 30001iN1 \leq i \leq N1jM1 \leq j \leq M

  • Subtask 111313 points):N4N \leq 4M4M \leq 4
  • Subtask 222020 points):N10N \leq 10M10M \leq 10
  • Subtask 336767 points):没有额外的限制。

样例说明

对于样例 11:你能制作 33 串饺子。

  • 您从顶部的第一行和左侧的第一列中选择三个连续的饺子。方向是从左到右。然后,你按照这个顺序把它们串成一串。
  • 您从上数第一行和左数第 44 列中选择三个连续的饺子。方向是从上到下。然后,你按照这个顺序把它们串成一串。
  • 您从上数第三行和左数第一列中选择三个连续的饺子。方向是从左到右。然后,你按照这个顺序把它们串成一串。

因为你不能做 44 串,所以输出 33
对于样例 22:你能制作 44 串饺子。

  • 您从顶部的第一行和左侧的第一列中选择三个连续的饺子。方向是从左到右。然后,你按照这个顺序把它们串成一串。
  • 您从顶部的第一行和左侧的第 4 列中选择三个连续的饺子。方向是从上到下。然后,你按照这个顺序把它们串成一串。
  • 您从上数第二行和左数第二列中选择三个连续的饺子。方向是从上到下。然后,你按照这个顺序把它们串成一串。
  • 您从上数第二行和左数第三列中选择三个连续的饺子。方向是从上到下。然后,你按照这个顺序把它们串成一串。

因为你不能做 55 串,所以输出 44

题目说明:

来源于 The 17th Japanese Olympiad in Informatics (JOI 2017/2018) Final Round 的 T3:Dango Maker
由 @求学的企鹅 翻译整理。