You misunderstand the definition of a D-path and a snake.
From page 4:
Let a D-path be a path starting with (0,0), which has exactly D, not diagonal edges. Path 0 should consist only of diagonal edges. It follows by simple induction that the D-path must consist of a (D-1) -pair followed by an off-diagonal edge, and then an empty sequence of diagonal edges, called a snake, is possible
So, in your example, where A = "A" and B = "B", the optimal path is 2 paths (one horizontal and one vertical), and the middle snake is an empty string. From the check, we know that LCS is an empty string, but we would like to show an algorithm that will prove it.
First of all, we need to find the middle snake. If you follow the middle snake search algorithm on page 11, you will see that the length of the shortest editing script is 2 and (x, y) = (u, v) = (1,0) or (0, 1). In other words, it is an empty snake in the middle of the road.
The algorithm pseudo-code has some non-obvious conventions:
- A [m..n] is an empty string if n <m.
- In recursive LCS calls, the first call uses the ceiling (D / 2) as D, and the second call uses the floor (D / 2). This is made more clear in the text above the algorithm on page 12.
So, in this example case, suppose that the first LCS call finds a middle snake with (x, y) = (u, v) = (1,0), then, since D = 2, the result is a decomposition from:
LCS(A[1..1], 1, B[1..0], 0)
This is correct since these lines do not have a common subsequence.