C++ 二维线性DP

二维线性DP 框架代码见下

cpp 复制代码
#include <iostream>
using namespace std;

#define maxn 110

int mat[maxn][maxn];
int dp[maxn][maxn];

int main()
{
  int n;
  cin >> n;
  for(int i=0; i<n; ++i){
    for(int j=0; j<=i; ++j){
      cin >> mat[i][j];
    }
  }
  dp[0][0] = mat[0][0];
  for(int i=0; i<n; ++i){
    dp[i][i] = mat[i][i] + dp[i-1][i-1];
    dp[i][0] = mat[i][0] + dp[i-1][0];
    for(int j=1; j<i; ++j){
      dp[i][j] = mat[i][j] + max(dp[i-1][j-1], dp[i-1][j]);
    }
  }
  int ans = dp[n-1][0];
  for(int i=1; i<n; ++i){
    ans = max(ans, dp[n-1][i]);
  }
  cout << ans << endl;
  // 请在此输入您的代码
  return 0;
}

代码练习1 对应蓝桥云课 云神的路径 代码见下

cpp 复制代码
#include <iostream>
using namespace std;

#define mod 1000000007
#define maxn 1001
char s[maxn][maxn];
int dp[maxn][maxn];


int main()
{
  int n;
  cin >> n;

  for(int i=0; i<n; ++i){
    cin >> s[i];
  }

  for(int i=0; i<n; ++i){
    for(int j=0; j<n; ++j){
      if(s[i][j] == '*'){
        dp[i][j] = 0;
      }else{
        if(i==0 && j ==0){
          dp[i][j] = 1;
        }else if(i == 0){ // 从左边过来
          dp[i][j] = dp[i][j-1];
        }else if(j == 0){ // 从上边过来
          dp[i][j] = dp[i-1][j];
        }else{
          dp[i][j] = (dp[i][j-1]+dp[i-1][j]) % mod;
        }
      }
    }
  }
  cout << dp[n-1][n-1] << endl;
  // 请在此输入您的代码
  return 0;
}

代码 2 对应蓝桥云课 激光样式 代码见下

cpp 复制代码
#include <iostream>
using namespace std;

int dp[31][2];

int main()
{
  dp[1][0] = 1;
  dp[1][1] = 1;
  for(int i=2; i<=30; ++i){
    dp[i][0] = dp[i-1][0] + dp[i-1][1];
    dp[i][1] = dp[i-1][0];

  }
  cout << dp[30][0] + dp[30][1] << endl;
  // 请在此输入您的代码
  return 0;
}
相关推荐
leoufung14 小时前
LeetCode 76:Minimum Window Substring 题解与滑动窗口思维详解
算法·leetcode·职场和发展
小O的算法实验室14 小时前
2026年IEEE TETCI,山区环境下基于双种群进化的协同无人机巡逻任务协同优化,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
A7bert77714 小时前
【YOLOv8pose部署至RDK X5】模型训练→转换bin→Sunrise 5部署
c++·python·深度学习·yolo·目标检测
生成论实验室14 小时前
《事件关系阴阳博弈动力学:识势应势之道》第二篇:阴阳博弈——认知的动力学基础
数据结构·人工智能·科技·神经网络·算法
li16709027015 小时前
第二十七章:智能指针
c语言·数据结构·c++·visual studio
风筝在晴天搁浅15 小时前
字节高频题 小于n的最大数
算法
LabVIEW开发15 小时前
LabVIEW水力机组空蚀在线监测
算法·labview·labview知识·labview功能·labview程序
AI科技星15 小时前
科幻艺术书本封面:《全域数学》第一部·数术本源 第三卷 代数原本(P95-141)完整五级目录【乖乖数学】
算法·机器学习·数学建模·数据挖掘·量子计算
风筝在晴天搁浅15 小时前
LeetCode 92.反转链表Ⅱ
算法·leetcode·链表
王老师青少年编程15 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【贪心与二分判定】:数列分段 Section II
c++·算法·贪心·csp·信奥赛·二分判定·数列分段 section ii