Hrbust 菜鸟和大牛(递归做法)

来源:互联网 发布:天猫dw美工教程 编辑:程序博客网 时间:2024/06/11 09:57
#include<iostream>#include<string.h>#include<math.h>#include<cstdio>using namespace std;int a[105][220];int vis[105][220];int n;int dfs(int i,int j){    if(vis[i][j]!=0)    {        return vis[i][j];    }    if(i==n)    {        vis[i][j]=a[i][j];    }    else    {        int x=dfs(i+1,j);        int y=dfs(i+1,j+1);        int z=dfs(i+1,j+2);        vis[i][j]=a[i][j]+max(max(x,y),z);    }    return vis[i][j];}int main(){    int t;    cin>>t;        char ch=getchar();        while(t--)        {            cin>>n;            memset(a,0,sizeof(a));            memset(vis,0,sizeof(vis));            for(int i=1;i<=n;i++)            {                for(int j=1;j<=2*i-1;j++)                {                    cin>>a[i][j];                }            }            int ac=dfs(1,1);            cout<<ac<<endl;        }    return 0;}