#887. [CSP2019 提高级] 第 15 题

[CSP2019 提高级] 第 15 题

正实数构成的数字三角形排列形式如图所示。第一行的数为 a1,1a_{1,1};第二行的数从左到右依次为 a2,1,a2,2a_{2,1},a_{2,2},第 nn 行的数为an,1,an,2,,an,na_{n,1},a_{n,2},\dots,a_{n,n}a1,1a_{1,1} 开始,每一行的数 ai,ja_{i,j} 只有两条边可以分别通向下一行的两个数 ai+1,ja_{i+1,j}ai+1,j+1a_{i+1,j+1}。用动态规划算法找出一条从 a1,1a_{1,1} 向下通到 an,1,an,2,,an,na_{n,1},a_{n,2},\dots,a_{n,n} 中某个数的路径,使得该路径上的数之和最大。

![](file://number-triangle.png)

C[i][j]C[i][j] 是从 a1,1a_{1,1}ai,ja_{i,j} 的路径上的数的最大和,并且 C[i][0]=C[0][j]=0C[i][0]=C[0][j]=0,则 C[i][j]=C[i][j]= ( )。

{{ select(1) }}

  • max{C[i1][j1],C[i1][j]}+ai,j\max\{C[i-1][j-1],C[i-1][j]\}+a_{i,j}
  • C[i1][j1]+C[i1][j]C[i-1][j-1]+C[i-1][j]
  • max{C[i1][j1],C[i1][j]}+1\max\{C[i-1][j-1],C[i-1][j]\}+1
  • max{C[i][j1],C[i1][j]}+ai,j\max\{C[i][j-1],C[i-1][j]\}+a_{i,j}