#P9641. [SNCPC2019] Grid with Arrows
[SNCPC2019] Grid with Arrows
Description
宝宝刚刚在他的左口袋里发现了一个 行 列的网格,其中第 行第 列的单元格(表示为 )包含一个箭头(指向上、下、左或右)和一个整数 。
宝宝决定用这个网格玩一个游戏。他首先会选择一个单元格作为初始单元格并标记它。在标记一个单元格之后(假设宝宝刚刚标记了单元格 ),宝宝将根据单元格 中的箭头和整数继续标记另一个单元格。
- 如果单元格 中的箭头指向上方,宝宝将继续标记单元格 ,如果该单元格存在的话。
- 如果单元格 中的箭头指向下方,宝宝将继续标记单元格 ,如果该单元格存在的话。
- 如果单元格 中的箭头指向左方,宝宝将继续标记单元格 ,如果该单元格存在的话。
- 如果单元格 中的箭头指向右方,宝宝将继续标记单元格 ,如果该单元格存在的话。 如果宝宝决定标记的单元格不存在,或者该单元格已经被标记,游戏结束。
宝宝想知道他是否可以选择一个合适的初始单元格,以便在游戏结束前恰好标记网格中的每一个单元格一次。请帮助他找到答案。
Input Format
有多个测试用例。第一行包含一个整数 ,表示测试用例的数量。对于每个测试用例:
第一行包含两个整数 和 (),表示网格的行数和列数。
接下来的 行中,第 行包含一个字符串 ,由小写英文字母组成(,$s_{i, j} \in \{\text{`u' (ascii: 117)}, \text{`d' (ascii: 100)}, \text{`l' (ascii: 108)}, \text{`r'(ascii: 114)}\}$),其中 表示单元格 中箭头的方向。
- 如果 ,单元格 中的箭头指向上方。
- 如果 ,单元格 中的箭头指向下方。
- 如果 ,单元格 中的箭头指向左方。
- 如果 ,单元格 中的箭头指向右方。
接下来的 行中,第 行包含 个整数 (),其中 表示单元格 中的整数。
保证所有测试用例的 之和不超过 。
Output Format
对于每个测试用例输出一行。如果宝宝可以找到一个合适的初始单元格,输出 “Yes”(不含引号),否则输出 “No”(不含引号)。
【样例解释】
对于第一个示例测试用例,宝宝可以选择单元格 作为初始单元格,这样他可以按以下顺序恰好打勾所有单元格:。
对于第二个示例测试用例,无论选择哪个单元格作为初始单元格,宝宝最多只能打勾 2 个单元格。
翻译来自于:ChatGPT。
2
2 3
rdd
url
2 1 1
1 1 2
2 2
rr
rr
1 1
1 1
Yes
No
京公网安备 11011102002149号