数字三角形

来源:互联网 发布:mac怎么打开xlsx 编辑:程序博客网 时间:2024/05/17 01:57

http://codevs.cn/problem/1220/
三角形从顶端往下走找一个值最大的路线。
很自然的想到,下一点的值等于上一层相连两点较大的点。

#include<iostream>#include<stdio.h>#include<algorithm>using namespace std;int max(int a, int b){    if (a>b)        return a;    else        return b;}int main(){    int n = 0;    int ditu[102][102] = { 0 };    int shuzi[102][102] = { 0 };    cin >> n;    for (int i = 1; i <=n; i++)    {        for (int j = 1; j <= i; j++)            scanf("%d",&ditu[i][j]);    }    for (int i = 1; i <= n; i++)    {        for (int j = 1; j <= i; j++)            shuzi[i][j] = ditu[i][j] + max(shuzi[i-1][j-1],shuzi[i-1][j]);    }    int max = -111111;    for (int i = 1; i <= n;i++)    if (max < shuzi[n][i])        max = shuzi[n][i];    cout << max << endl;    return 0;}
0 0