DP----鬼畜的数字三角形

数字三角形 1  

洛谷   P1216  数字金字塔

我们可以用 f [ i ] [ j ] 表示从(1,1)出发,到达(i,j)的最大权值和。

(i , j)可以由 正上(i - 1 , j)或者 左上(i - 1 , j - 1)转化来,所以要求这二者的最大值。

转移方程为:

 f [ i ] [ j ] = max ( f [ i - 1 ] [ j ] , f [ i - 1 ] [ j - 1 ] ) + a [ i ] [ j ] ;

边界为f [ 1 ] [ 1 ] = a [ 1 ] [ 1 ] ;  (其实不加也没关系)

Code 1

变式:

数字三角形 2

bool  f[i][j][k] 走到(i,j),时取模后最大价值为k是否可行

Code 2

数字三角形 3

 你考虑把它转化一下,因为必须经过(n/2,n/2),很多点都是没用的

以自造数据为例

8
1 
2   7
5   6   9
13  27  66  23 
17  55  6   8   9
26  77  8   1   3   6
5   7   4   3   6   3   1
6   6   7   8   2   2   3   7

简化

因为其余没用啊,这样做就保证一定经过点(n/2,n/2)

Code 3

数字三角形 4

 这个就是推广了一下上一个题

其实只有下面框下来的这些点有用,其余没用的清理成0就好

Code 4

猜你喜欢

转载自www.cnblogs.com/xiaoyezi-wink/p/11224776.html
今日推荐