简单DP(数塔问题)

#include <iostream>
#include <iostream>
#include<algorithm>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<deque>
#include<queue>
#include<vector>
#include<stack>
using namespace std;
int main()
{

    int T;
    cin>>T;
    while(T--)
    {
        int n,i,j,dp[110][110];
        scanf("%d",&n);
        memset(b,0,sizeof(b));
        for(i=1;i<=n;i++)
        for(j=1;j<=i;j++)
        cin>>dp[i][j];
        for(i=n;i>=1;i--)
        for(j=1;j<=n;j++)
        dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+dp[i][j];
         cout<<dp[1][1]<<endl;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_41232172/article/details/80766807
今日推荐