/**
好久没有写博客了,期末琐事比较多,寒假继续刷题看书,现在还在搞DP,我比较喜欢搜索,所以今天打算写个记忆
化搜索的题,但是还没写出来,所以用另一道简单的题来熟悉一下记忆化搜索,其实和暴力搜索没太大区别,主要是
对结果进行了储存;
下面是HDU 2084的代码
**/
#include<stdio.h>
#include<string.h>
#include<algorithm>
int num[105][105], dp[105][105], n;
int solve(int i, int j){
if(i == n + 1)
return 0;
if(dp[i][j] != 0)
return dp[i][j];
int a = solve(i + 1,j);
int b = solve(i + 1,j + 1);
return dp[i][j] = std::max(a, b) + num[i][j];
}
int main(){
int i, j, T;
scanf("%d", &T);
while(T--){
memset(dp, 0, sizeof(dp));
scanf("%d", &n);
for(i = 1;i <= n;i++)
for(j = 1;j <= i ;j++)
scanf("%d", &num[i][j]);
solve(1, 1);
printf("%d\n", dp[1][1]);
}
}
HDU 2084(数塔)
最新推荐文章于 2021-03-14 19:01:02 发布