...感覺這篇像湊數一樣.....不過這個在算法課上講的時候我也沒實現過,正好這次寫了寫。
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int d[110][110];
int dp[110][110];
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i = 0; i <= n+1 ;i++) dp[n+1][i] = 0;
for(int i = 1; i <= n ; i++)
{
for(int j = 1; j <= i; j++)
scanf("%d",&d[i][j]);
}
for(int i = n; i >= 1; i--)
{
for(int j = 1; j <= i ; j++)
dp[i][j] = max(dp[i+1][j],dp[i+1][j+1]) + d[i][j];
}
printf("%d\n",dp[1][1]);
}
return 0;
}