列表

详情


NC23761. 地图优化

描述

给你一张n*m的地图,给一个格点都有一个下一步的指示,右下角的格子是‘End’,你从左上角出发,每次按照指令移动,直到走到右下角。如下图所示。


2E表示向右移动2格,2S表示向下移动2格……

现在,你有一次改变某一个格子的指令的机会,修改后,到达右下角的过程中接收到的指令会有不同。如上图所示,分别接收到632个指令,我们的目的是使接收到的指令数目最少。

输入描述

本题包含多组数据

第一行两个正整数n、m,分别表示行的数目和列的数目。(n,m<=100)。第二行有nm-1个字符串,按照从上到下,从左到右的顺序描述了地图。格式是rD,r表示表示要移动的数目,D表示移动的方向,是‘N’,‘S’,‘E’或‘W’当中的一个。每一个地图至少包含两个单位,输入文件结束标志是2个0

输出描述

对每个地图,输出下列3中情况中的一种:

如果不修改都无法到达目的地(右下角的格子),输出“impossible”。

如果存在一条路径,但是无法通过一次修改使得接收指令数目更少,输出none l,l表示接收的指令数目。

否则,输出修改的行和列,注意,最上方的行的标号是0,最左边的列的标号也是0。接下来是修改后的新的指令,和总共接收指令的数目。

如果有2种最优的修改方式,输出行标号最小的,如果还有2种或以上最优的,输入列标号最小的,如果还有多种,按照下列优先顺序输出:1E、1N、1S、1W、2E……

示例1

输入:

3 3 
2E 2S 1S 1S 1N 1W 2N 1E 
2 4 
1E 1W 1W 1W 1W 1W 1W 
1 4 
3E 1E 1E 
0 0 

输出:

Case 1: 0 2 2S 2
Case 2: impossible
Case 3: none 1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

上一题