#6990. D - 面对面的两人(Pairs)
D - 面对面的两人(Pairs)
D - 面对面的两人(Pairs)
比赛来源: JOI 2026/2027 第一次预选赛(第 2 回)
时间限制: 2 秒 内存限制: 1024 MiB
题目描述
有一个由 (H) 行、(W) 列组成的网格。
我们将从上往下数第 (i) 行、从左往右数第 (j) 列的格子记作 ((i,j))。
每个格子中恰好有 1 个人。
位于格子 ((i,j)) 中的人的朝向用字符 (A_{i,j}) 表示。
根据 (A_{i,j}) 的取值,该人的朝向如下:
L:朝左。R:朝右。U:朝上。D:朝下。
如果两个人所在的格子在上下方向或左右方向上相邻,并且两个人都朝向对方所在的方向,那么称这两个人是面对面的。
请计算整个网格中共有多少对面对面的人。
输入格式
输入按照以下格式给出:
H W
A_1
A_2
...
A_H
其中,(A_i) 为一个长度为 (W) 的字符串,表示第 (i) 行所有人的朝向。
输出格式
输出一个整数,表示整个网格中面对面的两人共有多少对。
除答案外,不要输出任何其他内容。
输入输出样例 #1
输入
3 3
RLR
RDU
LUD
输出
2
样例解释
位于格子 ((1,1)) 的人朝右,位于格子 ((1,2)) 的人朝左,因此这两个人面对面。
同样,位于格子 ((2,2)) 的人朝下,位于格子 ((3,2)) 的人朝上,因此这两个人也面对面。
所以,整个网格中共有 2 对面对面的人,输出 2。
输入输出样例 #2
输入
2 4
LUUR
DLRD
输出
0
样例解释
不存在任何一对面对面的人。
因此输出 0。
输入输出样例 #3
输入
5 1
L
R
D
D
U
输出
1
样例解释
位于格子 ((4,1)) 的人和位于格子 ((5,1)) 的人面对面。
因此输出 1。
数据范围
对于所有测试数据,保证:
- (H)、(W) 均为整数。
-) 为
L、R、U、D中的一个字符,其中 。
注: 由于提供的原文中部分数学公式丢失,(H)、(W) 的具体取值范围暂未恢复。
| 测试点编号 | 层级 | H |
W |
横向 RL |
纵向 D→U |
标准输出 | 设计目的 |
|---|---|---|---|---|---|---|---|
| 1 | 弱数据 | 1 | 1 | 0 | 0 | 0 | 检查最小网格 |
| 2 | 2 | 1 | 1 | 检查单个横向匹配 | |||
| 3 | 2 | 1 | 0 | 1 | 检查单个纵向匹配 | ||
| 4 | 基础数据 | 4 | 0 | 0 | 检查方向相反或不相邻时不计数 | ||
| 5 | 1 | 8 | 4 | 4 | 检查同一行连续出现多个 RL |
||
| 6 | 正常数据 | 6 | 4 | 0 | 12 | 检查多组相邻行的纵向匹配 | |
| 7 | 3 | 2 | 4 | 检查横向、纵向结果共同累计 | |||
| 8 | 较强数据 | 4 | 6 | 5 | 6 | 11 | 检查多行混合模式和边界列 |
| 9 | 边界数据 | 2 | 1000 | 0 | 1000 | 检查最大宽度下整行纵向匹配 | |
| 10 | 极限数据 | 1000 | 250000 | 500000 | 检查大网格、流式读行和两类计数叠加 | ||