备战蓝桥杯 Day7(序列dp)

news2024/10/5 6:26:12

基本分类

(1)单序列

        a.最大子段和

        b.最长上升子序列LIS

(2)多序列

        a.最长公共子序列

        b.编辑距离

最大子段和

单序列dp一般开一维数组

最大子段和 - 洛谷icon-default.png?t=N7T8https://www.luogu.com.cn/problem/P1115

分析:

写出状态和状态转移方程:
        状态 dp[i]--以第i个元素作为结尾的最大子段和
        状态转移方程--dp[i]=max(dp[i-1]+a[i],a[i])


a[]   1  2  3  4  5  6  7(下标)
       2 -4  3 -1  2 -4  3(原数据)

dp[] 1  2  3  4  5  6  7(下标)
       2 -2  3  2  4  0  3(以第i个元素作为结尾的最大子段和)
最后遍历pd求出最大值即为最大子段和

代码实现

#include<iostream>
using namespace std;
#include <limits.h>
const int N=2e5+10;
int dp[N];
int a[N];//原始数据
int main()
{
	int n; cin >> n;
	for (int i = 1; i <= n; i++)
			cin >> a[i];
	//有的题目需要单独置边界;
	dp[1] = a[1];
	int mx = INT_MIN;//要加头文件#include <limits.h>
	for (int i = 1; i <= n; i++)
	{
		dp[i] = max(dp[i - 1] + a[i], a[i]);
		mx = max(mx, dp[i]);
	}
	cout << mx << endl;
    return 0;
}

1282:最大子矩阵

【题目描述】

已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 × 1)子矩阵。

比如,如下4 × 4的矩阵

0  -2 -7  0
9  2 -6  2
-4  1 -4  1
-1  8  0 -2

的最大子矩阵是

 9 2
-4 1
-1 8

这个子矩阵的大小是15。

【输入】

输入是一个N×N�×�的矩阵。输入的第一行给出N(0<N≤100)�(0<�≤100)。再后面的若干行中,依次(首先从左到右给出第一行的N�个整数,再从左到右给出第二行的N�个整数……)给出矩阵中的N2�2个整数,整数之间由空白字符分隔(空格或者空行)。已知矩阵中整数的范围都在[−127,127][−127,127]。

【输出】

输出最大子矩阵的大小。

【输入样例】

4
0 -2 -7  0
9  2 -6  2
-4  1 -4  1
-1  8  0 -2

【输出样例】

15

 思路:压维处理,转变成求某一区间行i1-i2行之间第j列的最大子段和问题

#include<iostream>
using namespace std;
#include <limits.h>
const int N=1e2+10;
int a[N][N];
int dp[N];
int b[N];//压维
int presum[N][N];//presum[i][j]--第j列前i项和
int main()
{
	int n; cin >> n;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			cin >> a[i][j];
			//处理前缀和
			presum[i][j] = presum[i - 1][j] + a[i][j];
		}
	}
	int mx = INT_MIN;
	//第i1行到i2行的最大子段和
	for (int i1 = 1; i1 <= n; i1++)
	{
		for (int i2 = i1; i2 <= n; i2++)
		{
			for (int j = 1; j <= n; j++)
			{
				b[j] = presum[i2][j] - presum[i1 - 1][j];
				//求第j列结尾的最大子段和
				dp[j] = max(dp[j-1]+b[j],b[j]);
				mx = max(mx,dp[j]);
			}
		}
	}
	cout << mx;
    return 0;
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1457038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chrome版本117驱动下载路,解决版本不匹配问题

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

生成式 AI - Diffusion 模型的数学原理(2)

来自 论文《 Denoising Diffusion Probabilistic Model》&#xff08;DDPM&#xff09; 论文链接&#xff1a; https://arxiv.org/abs/2006.11239 Hung-yi Lee 课件整理 文章目录 一、基本概念二、VAE与Diffusion model三、算法解释四、训练过程五、推理过程 一、基本概念 Diff…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之NavDestination组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、NavDestination组件 作为NavRouter组件的子组件&#xff0c;用于显示导…

计网day4

五 网络层 5.1 网络层功能概述 5.2 路由算法 5.3 IP数据报格式 无分类编址CIDR&#xff1a; ARP协议&#xff1a; DHCP协议&#xff1a; ICMP协议&#xff1a; 5.4 IPv6 5.5 RIP协议及距离向量算法 OSPF协议及链路状态算法&#xff1a; BGP协议&#xf…

作为一个程序员,最少要看过这几部电影吧?

计算机专业必看的几部电影 计算机专业必看的几部电影&#xff0c;就像一场精彩的编程盛宴&#xff01;《黑客帝国》让你穿越虚拟世界&#xff0c;感受高科技的魅力&#xff1b;《社交网络》揭示了互联网巨头的创业之路&#xff0c;《源代码》带你穿越时间解救世界&#xff0c;…

【每天学习一点点 day05】工程化 重新认识npm 02_包(package.json)的概念、模块(node_modules)、范围(scoped

1. 包package About packages and modules | npm Docs (npmjs.com) 1.1. package package.json包的描述性文件 A package is a file or directory that is described by a package.json file. 包是由 package.json 文件描述的文件或目录。 A package must contain a packa…

追赶OpenAI的Sora:Meta开源V-JEPA,让AI学会认识世界!

就在Sora疯狂刷屏那天&#xff0c;还有两款重磅产品发布&#xff1a;一个是谷歌的Gemini 1.5&#xff0c;首个支持100万tokens上下文的大模型&#xff1b;另外一个便是全球科技、社交巨头Meta的V-JEPA。 有趣的是&#xff0c;在功能方面V-JEPA与Sora有很多相似之处&#xff0c…

备战蓝桥杯 Day5

1191&#xff1a;流感传染 【题目描述】 有一批易感人群住在网格状的宿舍区内&#xff0c;宿舍区为n*n的矩阵&#xff0c;每个格点为一个房间&#xff0c;房间里可能住人&#xff0c;也可能空着。在第一天&#xff0c;有些房间里的人得了流感&#xff0c;以后每天&#xff0c;得…

用户空间与内核通信(一)

在Linux中&#xff0c;内核空间与用户空间是操作系统中的两个主要部分&#xff0c;它们有着明显的区别和不同的功能。 内核空间&#xff1a; 内核空间是操作系统内核运行的区域&#xff0c;它包括了操作系统内核代码、数据结构和设备驱动程序等。内核空间位于虚拟地址空间的最…

CleanMyMac X2024破解电脑版安装包下载

CleanMyMac X 4.14.6 是 CleanMyMac X 的一个具体版本号。这个版本可能包含了一些新的功能、改进和修复&#xff0c;以提高软件的性能和稳定性。以下是一些关于 CleanMyMac X 4.14.6 的特点和更新内容&#xff1a; 恶意软件保护&#xff1a;CleanMyMac X 4.14.6 继续加强其恶意…

SpringBoot源码解读与原理分析(五)SpringBoot的装配机制

文章目录 2.5 Spring Boot的装配机制2.5.1 ComponentScan2.5.1.1 ComponentScan的基本使用方法2.5.1.2 TypeExcludeFilter(类型排除过滤器)2.5.1.3 AutoConfigurationExcludeFilter(自动配置类排除过滤器) 2.5.2 SpringBootConfiguration2.5.3 EnableAutoConfiguration2.5.3.1 …

Shiro-05-5 分钟入门 shiro 安全框架实战笔记

序言 大家好&#xff0c;我是老马。 前面我们学习了 web 安全之 Spring Security 入门教程 这次我们来一起学习下另一款 java 安全框架 shiro。 什么是Apache Shiro&#xff1f; Apache Shiro是一个功能强大且易于使用的Java安全框架&#xff0c;它为开发人员提供了一种直…

【深度学习笔记】深度学习训练技巧——处理过拟合

处理过拟合 过拟合 定义&#xff1a;对训练集拟合得很好&#xff0c;但在验证集表现较差 神经网络 通常含有大量参数 (数百万甚至数十亿), 容易过拟合 处理策略&#xff1a;参数正则化、早停、随机失活、数据增强 早停 当发现训练损失逐渐下降&#xff0c;但验证集损失逐渐…

【项目管理】CMMI-项目监督和控制

项目监督和控制&#xff08;Monitoring and Control, MC&#xff09;的目的是通过周期性地跟踪项目计划的各种性能参数如工作产品的规模、工作量、成本、进度、风险等&#xff0c;不断地了解项目的进展情况&#xff0c;以便当项目实际进展状况显著偏离项目计划时能够及时采取纠…

Apache Flink连载(二十八):Flink细粒度资源管理(1)-适用场景和原理

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录

Hack The Box-Office

端口扫描&信息收集 使用nmap对靶机进行扫描 nmap -sC -sV 10.10.11.3开放了80端口&#xff0c;并且注意到该ip对应的域名为office.htb&#xff0c;将其加入到hosts文件中访问之 注意到扫描出来的还有robots文件&#xff0c;经过尝试后只有administrator界面是可以访问的 …

程序员的自我修养笔记

导读 本书将详细描述现在流行的Windows和Linux操作系统下各自的可执行文件、 目标文件格式&#xff1b; 普通C/C程序代码如何被编译成目标文件及程序在目标文件中如何存储&#xff1b; 目标文件如何被链接器链接到一起&#xff0c; 并且形成可执行文件&#xff1b; 目标文件在…

大白话说说redux

redux的3个重要概念 store 就是用来存放应用的各种状态的action 就是用来描述应用发生了什么动作的&#xff0c;注意理解他是对动作的描述reducer 就是用来处理应用的动作&#xff0c;并且决定怎么去更新应用存放在store里面的状态。 redux的3个原则 应用的所有状态存储为re…

消息中间件之RocketMQ源码分析(十)

Namesrv启动流程 第一步:脚本和启动参数配置。 启动命令 nohup ./bin/mqnamesrv -c ./conf/namesrv.conf > dev/null 2>&1 & 通过脚本配置启动基本参数&#xff0c;比如配置文件路径、JVM参数&#xff0c;调用NamesrvStartup.main()方法&#xff0c;解析命令行的…

Vue24 收集表单数据 实例

实例 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>收集表单数据</title><script type"text/javascript" src"../js/vue.js"></script></head><body><!-- 收集…