关闭

南理OJ_The Triangle

198人阅读 评论(0) 收藏 举报
分类:

题链:http://acm.nyist.net/JudgeOnline/problem.php?pid=18

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
const int MAXN = 100+5;
int d[MAXN][MAXN], a[MAXN][MAXN];
int max(int a, int b){
	if(a>b) return a;
	else return b;
}
int main(){
	int n;
	cin >> n; 
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= i; j++){
			scanf("%d", &a[i][j]); 
		}
	} 
	for(int i = 1; i <= n; i++) {
		d[n][i] = a[n][i];
	}
	for(int i = n-1; i>=1; i--){   //直接递推
		for(int j = 1; j <= i; j++){
			d[i][j] = max(d[i+1][j], d[i+1][j+1])+a[i][j]; 
		}
	}
	cout << d[1][1] << endl;
	return 0; 
}


1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    点滴生活:
    我用行动记录我的成长! 再牛逼的梦想,也抵不住傻逼似的坚持!
    ^_^:
    每一点积累, 都是一点进步!
    进步:
    向强者看齐, 向他们学习。    @然后不断地超越自己@
    个人资料
    • 访问:54587次
    • 积分:2212
    • 等级:
    • 排名:第17101名
    • 原创:165篇
    • 转载:42篇
    • 译文:1篇
    • 评论:18条