89超时求助
查看原帖
89超时求助
1120247
__asdfASDF12345楼主2024/8/15 21:22
#include<iostream>
using namespace std;
long long ans,b[1010][1010];
int a[1010][1010];
void dp(int d)
{
    if(d==0)return;
    for(int i=1;i<=d;i++)
    {
        if(!b[d-1][i-1]&&!b[d-1][i])dp(d-1);
        b[d][i]=max(b[d-1][i-1],b[d-1][i])+a[d][i];
    }
}
int main()
{
    int r;
    cin>>r;
    for(int i=1;i<=r;i++)
    {
        for(int j=1;j<=i;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    dp(r);
    for(int i=1;i<=r;i++)
    {
        ans=max(ans,b[r][i]);
    }
    cout<<ans<<endl;
    system("pause");
    return 0;
}
2024/8/15 21:22
加载中...