dp 题 从最简单的做起。
这种类型的题目就是一种思想,一种递归的思想,
就是从最开始的节点往后更新,用这个节点更新下一个节点,就是一直这么下去,一直传递。
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int a[105][105];
void dp(int x)
{
for(int i = x ; i > 0 ; i-- )
for(int j = i ; j > 0 ; j-- )
a[i-1][j-1] = max(a[i][j]+a[i-1][j-1],a[i][j-1]+a[i-1][j-1]);
}
int main()
{
int c , n;
while(~scanf("%d",&c))
while(c--)
{
scanf("%d",&n);
for(int i = 0 ; i < n ; i++ )
for(int j = 0 ; j <= i ; j++ )
scanf("%d",&a[i][j]);
dp(n-1);
printf("%d\n",a[0][0]);
}
return 0;
}