P3965 [TJOI2013] 循环格

题目背景

一个循环格就是一个矩阵,其中所有元素为箭头,指向相邻四个格子。每个元素有一个坐标(行,列),其中左上角元素坐标为 $(0,0)$。给定一个起始位 $(r,c)$,你可以沿着箭头方向在格子间行走。即:如果 $(r,c)$ 是一个左箭头,那么走到 $(r,c-1)$;如果是一个右箭头,走到 $(r,c+1)$;如果是上箭头,走到 $(r-1,c)$;如果是下箭头,走到 $(r+1,c)$。每一行和每一列都是循环的,即如果走出边界,你会出现在另一侧。比如在一个 $5\times 5$ 的循环格里,从 $(3,0)$ 向左走会出现在 $(3,4)$。

题目描述

一个完美的循环格是这样定义的:对于任意一个起始位置,你都可以沿着箭头最终回到起始位置。如果一个循环格不满足完美,你可以随意修改任意一个元素的箭头直到完美。例如下图,左边不是一个完美的循环格,因为只有从 $(1,1),(1,2),(2,0),(2,3)$ 出发才会回到起始位置。通过修改其中两个箭头,可以得到右图,一个完美的循环格。 ![](https://cdn.luogu.com.cn/upload/pic/10987.png) 给定一个循环格,你需要计算最少需要修改多少个元素使其完美。

输入格式

第一行两个整数 $R$ 和 $C$,表示循环格的行和列。接下来 $R$ 行,每一行包含 $C$ 个字符 `LRUD` 表示左右上下。

输出格式

一个整数,表示最少需要修改多少个元素使得给定的循环格完美。

说明/提示

### 数据范围 $30\%$ 的数据,$1 \le R, C \le 7$。 $100\%$ 的数据,$1 \le R, C \le 15$。