D. 摆放鞋子

内存限制:512 MiB 时间限制:1000 ms 输入文件:shoe.in 输出文件:shoe.out
题目类型:传统 评测方式:文本比较

题目描述

某一天小明买了许多鞋子,并这些鞋子放在了一个 n\times m 的网格上,每个格子中都有且仅有一只鞋子。不过他觉得这个网格上的鞋子摆放得非常不美观。

这些鞋子全都是一样的,只有左右脚之分:每只鞋子要么是左脚,要么是右脚。

除了左右脚的区别外,小明在放置鞋子时忘记让这些鞋子朝向同一方向。因此,每只鞋子都有上、下、左、右四种可能的朝向。

小明每次会选择两只相邻的鞋子,然后把其中一只顺时针旋转 90 度,另一只逆时针旋转 90 度。他可以进行无穷多次操作。

小明定义两只鞋子是一双,当且仅当他们相邻,且一只鞋是左脚,另一只鞋是右脚,并且两只鞋子的朝向需要满足下面四种情况之一:

  1. 左脚鞋在右脚鞋的上面,并且都朝右。
  2. 左脚鞋在右脚鞋的下面,并且都朝左。
  3. 左脚鞋在右脚鞋的左面,并且都朝上。
  4. 左脚鞋在右脚鞋的右面,并且都朝下。

小明想要把这些鞋子配成尽可能多的双,使得每只鞋子在至多一双中,即两双鞋子不能共用同一只。

小明请你帮他回答这个问题。你只需要告诉他最多可以配成多少对即可。

输入格式

第一行两个正整数 n,m ,表示网格图的行数以及列数。

接下来 n 行,每行一个长度为 m 的字符串,第 i 行的第 j 个字符是 L 以及 R 之一,表示这只鞋子是左脚或右脚。

接下来 n 行,每行一个长度为 m 的字符串,第 i 行的第 j 个字符是 LRU 以及 D 之一,表示这只鞋子朝向左边、右边、上边或下边。

输出格式

输出一行一个整数表示最多配出多少对。

样例

样例输入

2 2
RL
LR
UR
LU

样例输出

2

数据范围与提示

对于所有测试数据, 1≤n,m≤100

子任务 1 15pts: n,m≤10

子任务 2 20pts: n,m≤30

子任务 3 25pts: n,m≤50

子任务 4 25pts: n,m≤70

子任务 5 15pts:无特殊限制。