钱帅文 中级天翼 4952 这题的最左边和最右边只能用两个状态推: 最左边: f[i][j] = max(f[i - 1][j], f[i - 1][j + 1]) + map[i][j]; 最右边: f[i][j] = max(f[i - 1][j], f[i - 1][j - 1]) + map[i][j]; 否则: f[i][j] = max(f[i - 1][j - 1], max(f[i - 1][j], f[i - 1][j + 1])) + map[i][j]; 最后输出 f[m + 1][n / 2 + 1] 即可