当前位置: 首页 > news >正文

算法板子:线性DP——算出三角形中的最大路径值、求最长上升子序列、求最长公共子序列

目录

 一、数字三角形——算出三角形中的最大路径值

二、最长上升子序列——求一个数组中的最长递增子序列

三、最长公共子序列——求两个字符串中的最长公共子序列


 一、数字三角形——算出三角形中的最大路径值

#include <iostream>
using namespace std;const int N = 500 + 10;
int a[N][N];int main()
{int n;cin >> n;// 存储三角形for (int i = 0; i < n; i ++ )for (int j = 0; j <= i; j ++ )cin >> a[i][j];// 从三角形的倒二行开始倒着遍历; 对于每一行的每一个元素,将该元素左下角和右下角中更大的元素加在其本身上; 比如倒二行的第一个元素,4和5中5更大,加在2上变成7.for (int i = n - 2; i >= 0; i -- )for (int j = 0; j <= i; j ++ )a[i][j] = max(a[i + 1][j], a[i + 1][j + 1]) + a[i][j];// 三角形中最大路径值存在(0,0)位置cout << a[0][0] << endl;return 0;
}

二、最长上升子序列——求一个数组中的最长递增子序列

#include <iostream>
using namespace std;const int N = 1000 + 10;// a数组存储题目中给定的数组
// f[i]代表以i指针所指元素结尾的上升子序列的长度; f[4]=3代表以下标4元素结尾的子序列的长度为3
int a[N], f[N];int main()
{int n;cin >> n;for (int i = 0; i < n; i ++ ) cin >> a[i];// 初始化最长上升子序列的长度为1int ans = 1;// 初始化f数组元素全为1for (int i = 0; i < n; i ++ ) f[i] = 1;// 指针i从下标1开始遍历数组for (int i = 1; i < n; i ++ ){// 指针j从下标0遍历到指针i之前for (int j = 0; j < i; j ++ )// 如果发现j所指元素小于i所指元素,那么可以构成上升子序列,更新f[i]if (a[j] < a[i]) f[i] = max(f[j] + 1, f[i]);ans = max(ans, f[i]);}cout << ans << endl;return 0;
}

三、最长公共子序列——求两个字符串中的最长公共子序列

#include <iostream>
using namespace std;const int N = 1000 + 10;// f[i][j]中的指针i指向s1,指针j指向s2,f[i][j]代表s1中指针i之前的部分和s2中指针j之前的部分的最长公共子序列的长度; f[7][9]=3代表s1中的前7个字符和s2中的前9个字符的最长公共子序列的长度为3
int f[N][N];
int n, m;
string s1, s2;int main()
{cin >> n >> m >> s1 >> s2;for (int i = 1; i <= n; i ++ )for (int j = 1; j <= m; j ++ )// 如果s1的i-1位等于s2的j-1位,那么这一位可以并入s1的前i位和s2的前j位的公共子序列中,更新前i位和前j位的最长公共子序列的长度if (s1[i - 1] == s2[j - 1]) f[i][j] = f[i - 1][j - 1] + 1;// 如果不相等,一个是i-1一个是j-1求maxelse f[i][j] = max(f[i - 1][j], f[i][j - 1]);cout << f[n][m] << endl;return 0;
}

相关文章:

算法板子:线性DP——算出三角形中的最大路径值、求最长上升子序列、求最长公共子序列

目录 一、数字三角形——算出三角形中的最大路径值 二、最长上升子序列——求一个数组中的最长递增子序列 三、最长公共子序列——求两个字符串中的最长公共子序列 一、数字三角形——算出三角形中的最大路径值 #include <iostream> using namespace std;const int N …...

【C++】值传递

函数值传递的特点&#xff1a;值传递过程中即使形参改变也不会改变实参 没有返回值的函数用“ void ”定义 下面是一个实例&#xff1a; #include<iostream> using namespace std;//值传递 //定义函数&#xff0c;实现两个数字进行交换函数//如果函数不需要返回值&…...

工业三防平板助力MES系统打造工厂移动式生产管理

随着工业4.0时代的到来&#xff0c;智能制造、数字化车间等概念层出不穷&#xff0c;生产过程的可视化管理也成为了企业提升效率、优化生产的关键。而工业三防平板&#xff0c;凭借其坚固耐用、功能强大、便携易用等特性&#xff0c;成为了实现生产过程可视化管理的重要利器&am…...

keepalived+nginx实现的简单高可用故障转移

keepalived和nginx和适配 nginx服务停止后对keepalived的影响最近研究了一下keepalived绑定虚拟Ip,然后实现集群的方案,发现实现故障转移的模式,只有在keepalived服务整个挂掉后才能实现虚拟IP的漂移,和实际应用的场景不怎么适配,所以把它和nginx结合在一起实现集群高可用…...

openai api使用

1OpenAI 的 API 介绍 1.1 api分类 常用的 OpenAI Api 接口总共分为 4 类&#xff1a;对话类、私有化模型训练类、通用类、图片 & 音频类&#xff0c;其中对话类与私有化模型训练类是最常用的。 a .对话类 这类是最常用也是最核心的接口&#xff0c;用于人机对话。对话类…...

带你走进haproxy的世界

华子目录 前言什么是负载均衡为什么用haproxy负载均衡负载均衡公司负载均衡类型四层负载均衡七层负载均衡四层和七层的区别 haproxy介绍haproxy的安装与服务信息软件安装haproxy基本配置信息proxies配置socat工具 haproxy算法静态算法动态算法其他算法 高级功能及配置基于cooki…...

STM32--中断使用(超详细!)

STM32中断机制是嵌入式系统设计中一个非常重要的组成部分&#xff0c;它允许单片机在执行程序的过程中&#xff0c;对外部或内部发生的事件做出快速响应。以下是一篇关于STM32中断机制的详细介绍和示例代码&#xff0c;希望能够帮助你更好地理解和应用中断。 一、中断的基本概…...

【深度学习实践】基于深度学习的图像去雾算法-ChaIR-实践

本文介绍一个去雾算法ChaIR的使用方法&#xff0c;可以完成图像去雾&#xff0c;也可以用于图像去雨、去噪音等任务。本文不涉及论文原理&#xff0c;只包含源代码的跑通和使用。 先展示一下效果&#xff1a; 原图去雾 论文&#xff1a;Exploring the potential of channel …...

《乳腺密度高的女性中,使用AI辅助的乳腺X线筛查与补充筛查超声的比较研究》| 文献速递-基于深度学习的乳房、前列腺疾病诊断系统

Title 题目 Screening Outcomes of Mammography with AI in Dense Breasts: A Comparative Study with Supplemental Screening US 《乳腺密度高的女性中&#xff0c;使用AI辅助的乳腺X线筛查与补充筛查超声的比较研究》 Background 背景 Comparative performance between…...

crm 销售管理系统有哪些?国内外排名前十盘点

本文深入对比的 crm销售管理系统有&#xff1a;1.纷享销客&#xff1b; 2.Zoho CRM&#xff1b; 3.销售易&#xff1b; 4.有赞CRM&#xff1b; 5.Salesforce&#xff1b; 6.HubSpot&#xff1b; 7.简道云CRM&#xff1b; 8.爱客CRM&#xff1b; 9.Apptivo。 如果你正寻找一种方…...

package-lock.json 要提交到git吗?

之前一直没有提交package-lock.json文件到git仓库&#xff0c;直到我打包失败了。。。 我才知道package-lock.json需要提交到‌git仓库。 ‌ npm官网建议将package-lock.json一起提交到代码库中&#xff0c;不要忽略它。‌ package-lock.json的主要作用是锁定dependencies的版…...

算法学习day32

一、解码方法II&#xff08;解码方法I的升级版&#xff09; 在I的基础上增加了*&#xff0c;可以代替1-9中任意一个数字&#xff0c;求解码的方法有多少种 输入&#xff1a;s "*" 输出&#xff1a;9 解释&#xff1a;这一条编码消息可以表示 "1"、"…...

知识与智慧

前两天在medium上看到一篇文章&#xff0c;探讨知识&#xff08;knowledge&#xff09;和智慧&#xff08;wisdom&#xff09;之间的区别&#xff0c;很受启发&#xff0c;结合自己的经历和理解&#xff0c;形成此文&#xff1a; 何为知识 知识通常指的是信息的积累和对特定领…...

使用FFmpeg实现摄像头RTMP实时推流

在当今的数字时代,视频直播已成为连接人与人之间的重要桥梁,广泛应用于在线教育、远程会议、娱乐直播等多个领域。随着技术的不断进步,人们对于直播的实时性、稳定性和高质量需求日益增加。为了实现高效的视频直播,选择合适的工具和协议至关重要。 RTMP(Real-Time Messagi…...

使用 LabVIEW 编程更改 IMAQ/IMAQdx 接口的相机文件

问题详情 可能需要通过编程方式更改与 IMAQ/IMAQdx 接口关联的相机文件。这种需求通常发生在图像采集系统中&#xff0c;例如使用 PCIe-1433 硬件时&#xff0c;可能需要动态切换不同的相机配置文件来适应不同的应用场景。 解决方案 当前在 Measurement & Automation Ex…...

[后端代码审计] PHP 基础学习

文章目录 前言1. 基础语法1 .1 注释1 .2 分隔符 2. 变量与常量2 .1 变量2 . 1 .1 变量定义2 . 1 .2 变量释放 2 .2 常量2 . 2 .1 常量定义2 . 2 .2 预定义常量 3. 运算符3. 1 算数运算符3 .2 字符串运算符3 .3 赋值运算符3 .4 比较运算符3 .5 逻辑运算符3 .6 其他运算符 4. 流程…...

【OpenCV C++20 学习笔记】直方图计算-split, calcHist, normalize

直方图计算-split, calcHist, normalize 广义直方图示例目标分离通道计算直方图绘制计算结果归一化绘制 最终结果 广义直方图 直方图的横坐标除了可以是图片中的强度值&#xff0c;也可以是任何其他我们想要观察的特征。例如&#xff0c;下面的图片矩阵中包含了0-255的强度值&…...

js入门经典学习小结

简介 js是解释型语言&#xff0c;虽然名字有java&#xff0c;但和java&#xff0c;c等编译型语言不同&#xff0c;它是解释型的&#xff0c;类似perl&#xff0c;py 历史 90年代最早js 1.0版本是网景navigator2引入的 然后欧洲计算机制造商协会&#xff08;ECMA&#xff09…...

nps内网穿透之——腾讯云服务器和linux虚拟机

准备 1、客户端&#xff1a;准备一个内网的linux内网主机&#xff0c;或是一个虚拟机。 2、服务端&#xff1a;准备一个云服务器&#xff08;阿里、腾讯、华为都行&#xff09;。 安装方式&#xff1a; 1、自己到Github官网下载安装包上传。 下载地址&#xff1a;https://…...

大数据知识点

VMWare 设置网段 虚拟机设置 JDK部署 云平台 创建VPC 找到阿里云控制台里的VPC&#xff0c;点击专有网络 安全组 搁置…有需要再使用&#xff0c;因为每月要花200左右 大数据 数据导论...

OpenClaw语音交互:千问3.5-9B+Whisper实现声控自动化

OpenClaw语音交互&#xff1a;千问3.5-9BWhisper实现声控自动化 1. 为什么需要语音交互的自动化助手 去年冬天的一个深夜&#xff0c;我正蜷在沙发上用笔记本处理文件&#xff0c;突然意识到一个问题——当双手被热咖啡和零食占据时&#xff0c;想要快速调取电脑里的资料变得…...

OpenVINO benchmark_app 性能测试全攻略:从参数解析到FP32/INT8模型对比实战

OpenVINO benchmark_app 深度性能调优指南&#xff1a;参数解析与量化模型实战 在边缘计算和嵌入式设备上部署AI模型时&#xff0c;性能优化往往是决定项目成败的关键因素。Intel推出的OpenVINO工具套件中的benchmark_app&#xff0c;就像一位专业的"模型体检医生"&a…...

山东大学软件学院项目实训-创新实训-医院自助服务系统(二)

时间&#xff1a;2026.3.27-4.5 工作内容&#xff1a;智能诊断书扫描功能开发&#xff08;初步&#xff09;&#xff0c;SpringBoot 通义千问VL实现智能诊断书识别 - 医疗自助服务系统开发实践 一、模块开发背景 在本次创新项目实训中&#xff0c;我负责开发“智愈”医疗自助…...

OpenClaw多模型对比:Qwen3-14b_int4_awq与开源小模型任务表现

OpenClaw多模型对比&#xff1a;Qwen3-14b_int4_awq与开源小模型任务表现 1. 测试背景与动机 最近在折腾OpenClaw自动化工作流时&#xff0c;发现一个关键问题&#xff1a;同样的任务脚本&#xff0c;换不同的大模型后端&#xff0c;执行效果差异巨大。为了找到最适合个人办公…...

Linux文件系统探秘:当你删除一个文件时,inode位图究竟发生了什么变化?

Linux文件系统探秘&#xff1a;当你删除一个文件时&#xff0c;inode位图究竟发生了什么变化&#xff1f; 在Linux系统中&#xff0c;删除文件看似是一个简单的操作&#xff0c;但背后却隐藏着一系列精密的元数据操作。对于系统开发者和运维人员而言&#xff0c;理解这一过程不…...

AI摄影师助手:OpenClaw调用Qwen3-32B自动筛选与修图

AI摄影师助手&#xff1a;OpenClaw调用Qwen3-32B自动筛选与修图 1. 从手动修图到AI助手的转变 作为一名摄影爱好者&#xff0c;我经常面临一个令人头疼的问题&#xff1a;每次拍摄结束后&#xff0c;相机里堆积如山的RAW文件需要花费大量时间筛选和后期处理。直到上个月&…...

UE5 UMG坐标转换实战:用SlateBlueprintLibrary搞定UI拖拽与点击检测

UE5 UMG坐标转换实战&#xff1a;用SlateBlueprintLibrary搞定UI拖拽与点击检测 在虚幻引擎5的UMG开发中&#xff0c;精准控制UI元素的交互行为是提升用户体验的关键。想象一下&#xff0c;当玩家拖动一个自定义背包中的物品&#xff0c;或是点击复杂HUD中的某个区域时&#xf…...

OpenClaw多模型切换:Qwen2.5-VL-7B与文本模型协同工作

OpenClaw多模型切换&#xff1a;Qwen2.5-VL-7B与文本模型协同工作 1. 为什么需要多模型协同 去年夏天&#xff0c;当我第一次尝试用OpenClaw自动化处理团队的知识库文档时&#xff0c;遇到了一个棘手的问题&#xff1a;有些文档包含大量截图和图表说明&#xff0c;而纯文本模…...

老旧电脑焕新生:OpenClaw+Qwen3-4B低资源占用优化方案

老旧电脑焕新生&#xff1a;OpenClawQwen3-4B低资源占用优化方案 1. 为什么需要低资源优化方案 去年我翻出一台2015款的MacBook Air&#xff0c;4GB内存的配置在当下连开几个Chrome标签页都吃力。但作为技术爱好者&#xff0c;我总想让它发挥余热。当我尝试在这台设备上运行O…...

网络协议封神考点:TCP协议是如何保证可靠传输的?原理+流程图+硬核详解

网络协议封神考点&#xff1a;TCP协议是如何保证可靠传输的&#xff1f;原理流程图硬核详解一、前言二、基础定义&#xff1a;什么是TCP可靠传输&#xff1f;三、TCP保证可靠传输的6大核心机制&#xff08;必考&#xff09;3.1 机制1&#xff1a;面向连接&#xff08;三次握手 …...