D0(x,y) <- DP(x,y) == DP(x-1,y-1)
VP(x,y) <- DP(x,y) == DP(x,y-1)+1
VN(x,y) <- DP(x,y) == DP(x,y-1)-1
HP(x,y) <- DP(x,y) == DP(x-1,y)+1
HN(x,y) <- DP(x,y) == DP(x-1,y)-1
この5変数は bit vector なんで、1列まとめて update する手段があれば、 bit 幅ぶんだけ並列に更新できる
", " | ", " | o", " | r", " | e", " | h", " | a", " | m", " | o", " | u", " | t", " | u", " | k", " | a", " | r", " | e", " | t", " | a"] |
u/DP(y-1)", " | 4", " | 3", " | 3", " | 3", " | 4", " | 5", " | 6", " | 7", " | 7", " | 8", " | 8", " | 9", " | 10", " | 11", " | 12", " | 13", " | 14"] |
m/DP(y)", " | 5", " | 4", " | 4", " | 4", " | 4", " | 5", " | 5", " | 6", " | 7", " | 8", " | 9", " | 9", " | 10", " | 11", " | 12", " | 13", " | 14"] |
D0(y)", " | -", " | 1", " | 0", " | 0", " | 0", " | 0", " | 1", " | 1", " | 1", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0"] |
VP(y)", " | -", " | 1", " | 1", " | 1", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 1", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0"] |
VN(y)", " | -", " | 0", " | 0", " | 0", " | 0", " | 0", " | 1", " | 1", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0"] |
HP(y)", " | -", " | 0", " | 0", " | 0", " | 0", " | 1", " | 0", " | 1", " | 1", " | 1", " | 1", " | 0", " | 1", " | 1", " | 1", " | 1", " | 1"] |
HN(y)", " | -", " | 1", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0", " | 0"] |