动态规划——线性dp

图片来源:@_snowstorm_

路线问题的状态表示一般都可以用点的坐标来表示

状态表示数组维数的确定原则:在可以用该维数表示出答案的基础上维数尽可能最小

数字三角形

acwing 898

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;const int N = 510;int f[N][N]; //f[i][j]:从底向上走到(i,j)所有点的集合
int n;int main(){cin >> n;for(int i = 1;i <= n;i ++ ){for(int j = 1;j <= i;j ++ ){cin >> f[i][j];}}for(int i = n - 1;i;i -- ){for(int j = 1;j <= i;j ++ ){f[i][j] += max(f[i + 1][j],f[i + 1][j + 1]);}}cout << f[1][1] << endl;return 0;
}

最长严格上升子序列 (时间复杂度O(n ^ 2))

acwing 895

#include<iostream>
#include<algorithm>
#include<climits>using namespace std;const int N = 1010;int n;
int a[N],f[N]; //f[i]表示所有以第i个数结尾的上升子序列的最大值int main(){cin >> n;for(int i = 1;i <= n;i ++ ){cin >> a[i];}for(int i = 1;i <= n;i ++ ){f[i] = 1;for(int j = 1;j < i;j ++ ){if(a[j] < a[i]) f[i] = max(f[j] + 1,f[i]);}}int res = INT_MIN;for(int i = 1;i <= n;i ++ ){res = max(res,f[i]);}cout << res << endl;return 0;
}

最长严格上升子序列(二分优化)(时间复杂度O(nlogn))

二分优化后像贪心的思想

acwing896

#include <iostream>
#include <algorithm>using namespace std;const int N = 100010;int n;
int a[N];
int q[N];int main()
{scanf("%d", &n);for (int i = 0; i < n; i ++ ) scanf("%d", &a[i]);int len = 0;q[0] = -2e9;for(int i = 0; i < n; i ++ ){int l = 0, r = len + 1;while(l < r){int mid = l + r >> 1;if(q[mid] >= a[i]) r = mid;else l = mid + 1;}len = max(len, l);q[l] = a[i];}cout << len << endl;return 0;
}

最长公共子序列 

acwing 897

#include<cstring>
#include<iostream>using namespace std;const int N = 1010;int n, m;
string a, b;
int f[N][N];int main()
{cin >> n >> m;cin >> a >> b;for(int i = 1; i <= n; i ++ )for(int j = 1; j <= m; j ++ ){f[i][j] = max(f[i][j - 1], f[i - 1][j]);if(a[i - 1] == b[j - 1]) f[i][j] = max(f[i][j], f[i - 1][j - 1] + 1);}cout << f[n][m] << endl;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot Vue大学生家教管理系统

一、&#x1f4dd;功能介绍 基于SpringBoot Vue大学生家教管理系统 角色&#xff1a;管理员、教师、学生 管理员&#xff1a;管理员进入主页面&#xff0c;主要功能包括对首页、个人中心、学生管理、教师管理、科目管理、家教需求管理、家教预约管理、取消预约管理、通知公告…

项目:自主实现Boost搜索引擎

文章目录 写在前面开源仓库和项目上线其他文档说明 项目背景项目的宏观原理技术栈与环境搜索引擎原理正排索引倒排索引 去标签和数据清洗模块html文件名路径保存函数html数据解析函数文件写入函数 建立索引模块检索和读取信息建立索引建立正排索引建立倒排索引jieba工具的使用倒…

全网短剧搜索前端源码开源分享可改自己的接口

全网短剧搜索前端源码 内含7000短剧资源(不支持在线播放&#xff09; 源码全开源&#xff0c;可以修改成自己的接口 178、226、347行修改 源码免费下载地址抄笔记 (chaobiji.cn)https://chaobiji.cn/

学习 MongoDB:打开强大的数据库技术大门

一、基本概念 MongoDB 是一个基于分布式文件存储的文档数据库&#xff0c;由 C 语言编写。它旨在为 Web 应用提供可扩展的高性能数据存储解决方案。 相信MySQL我们非常的熟悉&#xff0c;那么MySQL的表结构与MongoDB的文档结构进行类比的话可能更好理解MongoDB。 MySQL的数据…

鸿蒙内核源码分析 (并发并行篇) | 内核如何管理多个 CPU?

理解并发概念 并发&#xff08;Concurrent&#xff09;: 多个线程在单个核心运行&#xff0c;同一时间只能一个线程运行&#xff0c;内核不停切换线程&#xff0c;看起来像同时运行&#xff0c;实际上是线程被高速的切换. 通俗好理解的比喻就是高速单行道&#xff0c;单行道指…

AI预测福彩3D第28弹【2024年4月6日预测--第7套算法重新开始计算第1次测试】

今天开始&#xff0c;咱们开始进行第7套算法的测试&#xff0c;第7套算法将综合012路权重、012路直选及012路和值进行预测。好了&#xff0c;先上图后上结果吧~ 2024年4月6日福彩3D的七码预测结果如下 第一套&#xff1a; 百位&#xff1a;1 2 4 5 7 8…

计算机视觉入门:开启图像理解之旅

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

使用 Docker 部署 Photopea 在线 PS 工具

1&#xff09;Photopea 介绍 GitHub&#xff1a;https://github.com/photopea/photopea 官方手册&#xff1a;https://www.photopea.com/learn/ Adobe 出品的「PhotoShop」想必大家都很熟悉啦&#xff0c;但是「PhotoShop」现在对电脑配置要求越来越高&#xff0c;体积越来越大…

JavaEE初阶——多线程(一)

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享多线程的第一部分:引入线程以及创建多线程的几种方式 此文章是建立在前一篇文章进程的基础上的 如果有不足的或者错误的请您指出! 1.认识线程 我们知道现代的cpu大多都是多核心…

5.3 用栈翻转数组,动态规划求斐波那契数列

5.3 用栈翻转数组&#xff0c;动态规划求斐波那契数列 1. 用栈翻转数组 assume cs:code,ds:data,ss:stack data segmentarr dw 1111h,2222h,3333h,4444h,5555h,6666h,7777h,8888hres db 800 dup(0) data endsstack segmentdb 100 dup(0) stack endscode segmentstart:mov ax,…

xss.pwnfunction-Jefff

在eval中可以直接执行命令所以直接把"直接闭合在结尾再加上一个"因为后面的"没闭和会报错 ?jeffa";alert(1);" 或 ?jeffa"-alert(1)-" -是分隔符