#P2470. [USACO07FEB] Lilypad Pond G
[USACO07FEB] Lilypad Pond G
Description
# P1606 [USACO07FEB] Lilypad Pond G题目描述
FJ has installed a beautiful pond for his cows' aesthetic enjoyment and exercise.
The rectangular pond has been partitioned into square cells of M rows and N columns (1 ≤ M ≤ 30; 1 ≤ N ≤ 30). Some of the cells have astonishingly sturdy lilypads; others have rocks; the remainder are just beautiful, cool, blue water.
Bessie is practicing her ballet moves by jumping from one lilypad to another and is currently located at one of the lilypads. She wants to travel to another lilypad in the pond by jumping from one lilypad to another.
Surprising only to the uninitiated, Bessie's jumps between lilypads always appear as a chess-knight's move: one move in one direction and then two more in the orthogonal direction (or perhaps two in one direction and then one in the orthogonal direction).
Farmer John is observing Bessie's ballet drill and realizes that sometimes she might not be able to jump to her destination lilypad because intermediary lilypads are missing.
Ever thrifty, he wants to place additional lilypads so she can complete her quest (perhaps quickly, perhaps by using a large number of intermediate lilypads). Of course, lilypads cannot be placed where rocks already intrude on a cell.
Help Farmer John determine the minimum number of additional lilypads he has to place, and in how many ways he can place that minimum number.
输入格式
第一行两个用空格分开的整数 和 。
第二行到 行,第 行有 个用空格分开的整数,描述了池塘第 行的状态:
- 为水, 为莲花, 为岩石, 为贝西所在的起点, 为贝西想去的终点。
输出格式
第一行一个整数,需要增加的最少莲花数;如果无解,输出 。
第二行输出放置这些莲花的方案数量,保证这个数字可用一个 位的有符号整数,表示。
特别地,如果第一行是 ,不要输出第二行。
输入输出样例 #1
输入 #1
4 5
1 0 0 0 0
3 0 0 0 0
0 0 2 0 0
0 0 0 4 0
输出 #1
2
3
说明/提示
样例解释
池塘分成四行五列,贝西的起点在第二行第一列,想去的终点在第四行第四列,池塘里一共有三朵莲花和一块石头。
最少需要两朵莲花,有三种方式可以放置,
如下 所示:
$$\begin{bmatrix} \verb!10000! \\ \verb!30X00! \\ \verb!00200! \\ \verb!0X040! \\ \end{bmatrix},\begin{bmatrix} \verb!10X00! \\ \verb!30000! \\ \verb!0X200! \\ \verb!00040! \\ \end{bmatrix},\begin{bmatrix} \verb!10X00! \\ \verb!3000X! \\ \verb!00200! \\ \verb!00040! \\ \end{bmatrix}$$