以某个给定圆圈结尾的部分忍者路径所能达到的最大红色圆圈数,只取决于以其两个可能的前驱圆圈结尾的两条最优部分路径。
对任意日本三角形,令 f(i,j)f(i,j)f(i,j) 表示从最顶端的圆到第 jjj 行第 iii 个位置的圆的忍者路径段上红色圆圈的最大数目(若该位置不存在则 f(i,j)=0f(i,j)=0f(i,j)=0)。由于经过 (i,j)(i,j)(i,j) 的每条路径都来自 (i−1,j−1)(i-1,j-1)(i−1,j−1) 或 (i,j−1)(i,j-1)(i,j−1),若 (i,j)(i,j)(i,j) 是红色圆圈,则 f(i,j)=max{f(i−1,j−1),f(i,j−1)}+1f(i,j)=\max\{f(i-1,j-1),f(i,j-1)\}+1f(i,j)=max{f(i−1,j−1),f(i,j−1)}+1;否则 f(i,j)=max{f(i−1,j−1),f(i,j−1)}f(i,j)=\max\{f(i-1,j-1),f(i,j-1)\}f(i,j)=max{f(i−1,j−1),f(i,j−1)}。