AT_arc019_3.[ARC019C] 最後の森
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
魔王的城堡坐落在名为「最后的森林」的地方。这个森林由 R 行 C 列的网格构成,每个格子可能是以下几种类型:
- 平地:可以自由通行。
- 树木:此格子不能通行。
- 强敌:有凶恶的强敌阻挡,需要特定条件才能通过。
- 村庄:玩家的起始位置,可以自由通行。
- 神殿:存放传说之剑 Link-Cut Sword,可以自由通行。
- 魔王的城堡:魔王所在位置,可以自由通行。
村庄、神殿和魔王的城堡各自只有一个。
我们称第 i 行第 j 列的格子为 (i,j)。如果两个格子相邻,意味着它们共享一个边,即以下两种情况之一成立:
- 在同一行,两列相邻。
- 在同一列,两行相邻。
玩家初始位置在村庄。玩家可以执行以下两种操作:
- 移动到相邻的格子,前提是该格子允许通行。
- 与相邻格子中的强敌战斗。战胜敌人后,该格子可以通行。
在与魔王对峙之前,玩家需要提升自己的装备(道具)。取得神殿中的传说之剑是战胜魔王的必要条件。因此,玩家需要先获取传说之剑,然后前往魔王的城堡。即便不拿剑,也可以路过魔王的城堡,但最多只能与 K 次强敌交锋。
由于森林中弥漫着魔王的剧毒雾气,玩家需要尽可能减少移动时间。请编写程序,计算出满足条件的最短路径的移动次数。如果没有符合条件的路径,输出 -1。
输入格式
第一行为三个整数 R,C,K,分别表示森林的行数、列数和允许战斗的最大次数。
接下来 R 行,每行包含一个长度为 C 的字符串,描述森林的格子种类。其中:
.表示平地T表示树木E表示强敌S表示村庄C表示神殿G表示魔王的城堡
输出格式
输出满足条件的最短路径的移动次数。如果没有符合条件的路径,则输出 -1。
示例
输入例 1
5 7 3
GET..ET
..T....
.TEST..
.E.T.ET
...ETC.
输出例 1
19
输入例 2
5 7 2
GET..ET
..T....
.TEST..
.E.T.ET
...ETC.
输出例 2
21
输入例 3
5 7 1
GET..ET
..T....
.TEST..
.E.T.ET
...ETC.
输出例 3
-1
输入例 4
6 35 4
T...TT.....TT...TTT...TTT..TTG.....
..T..T.TTT.T..T..E..T..E...TTT.TTT.
.TTT.T.....E.TTTTT.TTT.TTT.TTT.....
.....T.TT.TT.TTTTT.TTT.TTT.TTTTTTT.
.TTT.T.TT..T..T..S..T..TTT.TTTTTTT.
.CTT.E.TTT.TT...TTT...TT.....E.....
输出例 4
94
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?