蓝桥杯-数字三角形

cpp 复制代码
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int N=110;
int n;
int a[N][N];
int f[N][N];
int main()
{
  scanf("%d",&n);
  //1.输入图形
  for(int i=1;i<=n;i++)
    for(int j=1;j<=i;j++)
     scanf("%d",&a[i][j]);
   
  //2.情形1
  f[1][1]=a[1][1];
  //3.开始遍历
  for(int i=2;i<=n;i++)
  {
    for(int j=1;j<=i;j++)
  {
  //4.情形2:左边球
     if(j==1)
     f[i][j]=f[i-1][j]+a[i][j];
     //5.情形3:右边球
     else if(i==j) f[i][j]=f[i-1][j-1]+a[i][j];//分成三种情况讨论
     //6.情形4:中间球
     else f[i][j]=max(f[i-1][j],f[i-1][j-1])+a[i][j];
  }
}
//5.对步数进行判断
 if(n%2==1) cout<<f[n][n/2+1];
  else cout<<max(f[n][n/2],f[n][n/2+1]);
  找规律发现如果n为奇数时,最后必然走到最后行最中间的数,如果为偶数,则取中间两个数的最大值,
  //因为向左下走的次数与向右下走的次数相差不能超过 1
   return 0;
}
相关推荐
地平线开发者39 分钟前
征程 6 | cgroup sample
算法·自动驾驶
姓蔡小朋友1 小时前
算法-滑动窗口
算法
君义_noip2 小时前
信息学奥赛一本通 2134:【25CSPS提高组】道路修复 | 洛谷 P14362 [CSP-S 2025] 道路修复
c++·算法·图论·信息学奥赛·csp-s
kaikaile19952 小时前
基于拥挤距离的多目标粒子群优化算法(MO-PSO-CD)详解
数据结构·算法
不忘不弃2 小时前
求两组数的平均值
数据结构·算法
leaves falling2 小时前
迭代实现 斐波那契数列
数据结构·算法
珂朵莉MM2 小时前
全球校园人工智能算法精英大赛-产业命题赛-算法巅峰赛 2025年度画像
java·人工智能·算法·机器人
Morwit2 小时前
*【力扣hot100】 647. 回文子串
c++·算法·leetcode
tobias.b3 小时前
408真题解析-2009-13-计组-浮点数加减运算
算法·计算机考研·408考研·408真题