#P15226. [SWERC 2017] Burglary
[SWERC 2017] Burglary
说明
皇家厨房的巨型糖果墙用于存放……没错,糖果棒。这些糖果棒被放置在 个等长架子的罐子里。架子从地面向上垂直排列,且它们的最左和最右边缘水平对齐。每个架子被划分为 个等大小的槽,每个槽可以是空的,也可以被一个罐子占据。一个罐子包含 1 到 9 根糖果棒。
每个架子通过一个或多个垂直梯子与正下方的架子(或地面,对于最底层的架子)相连。一个梯子连接一个槽与下方架子对应的槽,或连接到地面。在任何给定槽的正下方最多有一个梯子。
最顶层的架子不包含任何罐子,但紧挨其上是一个巨大的敞开窗户,通向皇家厨房的屋顶。Mini-Fierce-And-Hungry Bandit 惊人地通过这个顶部窗户进入了皇家厨房,现在计划进行一次大规模的糖果棒盗窃。更准确地说,他打算在墙上进行一次有趣且有利可图的“往返旅行”,即:
- 从最顶层的架子开始;
- 向下移动 0 个或多个架子,可能直到到达地面;
- 然后再次向上移动,通过顶部窗户优雅退出;
当然,在此过程中尽可能多地抓取糖果棒。
然而,强盗面临的主要问题是:他不能进入包含糖果罐的槽超过一次,因为这会触发可怕的糖果警报。
你的任务:帮助强盗仔细计划他在糖果墙上的往返旅行,以最大化抓取的糖果棒数量,而不触发任何警报。
输入格式
第一行包含两个整数:(架子数量)和 (每个架子的槽数),以空格分隔。接下来的 行每行包含长度为 的字符串,以 ASCII 艺术形式描述架子和梯子的配置:
- 对于 ,第 行包含字符 ‘-’、‘1’、……、‘9’,其中数字 表示一个装有 根糖果棒的罐子,而 ‘-’ 表示空槽。
- 对于 ,第 行包含字符 ‘.’ 和 ‘|’,其中 ‘|’ 表示梯子,‘.’ 表示空的墙壁空间。
输出格式
输出包含一行一个整数,表示强盗在不触发任何警报的情况下可以收集的最大糖果棒数量。
5 20
--------------------
.|.....|...|......|.
1-1--1115-3-1-1--1-1
....|.........|.....
---1-11-1-11---1--3-
.......|.........|..
-7----9-4-----------
..|.................
--------9-----------
.|.................|
38
提示
样例解释
:::align{center}
:::
注意
- 梯子端点对应的槽可能包含罐子。
- 一个槽可以通过在架子上行走(从左到右或从右到左)进入,或者通过到达梯子的端点进入。如果使用了梯子,则梯子端点对应的槽必然被进入。
- 最顶层架子和地面上没有糖果罐。
数据范围
- ;
- ;
- 任何架子正下方有 1 到 10 个梯子。
翻译由 DeepSeek 完成
京公网安备 11011102002149号