2 条题解
-
0
动态规划初步 可以用逆推做
#include<bits/stdc++.h>
using namespace std;
long n,a[1005][1005],i,j,ma,f[1005][1005];
long read()//快读
{
long x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-')f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=x10+(ch-'0'); ch=getchar(); } return xf;
}
void write(long x)
{//快输 if(x<0){
putchar('-'); write(-x); return; } if(x>=10)write(x/10); putchar(x%10+'0');
}
int main()
{ n=read();
for(i=1;i<=n;i++) for(j=1;j<=i;j++) a[i][j]=read();//输入 for(i=n;i>0;i--) for(j=1;j<=i;j++) { ma=a[i][j]+max(f[i+1][j],f[i+1][j+1]);//加上下一层的正下的下右 f[i][j]=max(f[i][j],ma); //找最大 } write(f[1][1]);//输出第一层第一个 return 0;
}
- 1
信息
- ID
- 22
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 151
- 已通过
- 94
- 上传者