大佬看下怎么错了
查看原帖
大佬看下怎么错了
131890
Eroi楼主2021/10/17 10:48
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<algorithm>

using namespace std;

inline int read(){
	int x=0;
	int f=1;
	char ch;
	ch=getchar();
	while(ch>'9'||ch<'0'){
		if(ch='-') f=-f;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=x*10+ch-'0';
		ch=getchar();
	}
	return x*f;
}

int a[1005][1005];
int r;
int mem[1005][1005];

int dp(int line,int i){
	if(line==r){
		return mem[line][i];
	}
	if(mem[line][i]>0) return mem[line][i];
	return mem[line][i]=a[line][i]+max(dp(line+1,i),dp(line+1,i+1));
}

int main()
{
	r=read();
	for(int i=1;i<=r;i++){
		for(int j=1;j<=i;j++){
			a[i][j]=read();
		} 
	}
	memset(mem,0,sizeof(mem));
	for(int i=1;i<=r;i++){
		mem[r][i]=a[r][i];
	}
	cout<<dp(1,1);
	return 0;
} 
2021/10/17 10:48
加载中...