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

最长递增子序列--蓝桥oj3046拍照

题目链接

arr[]  1700 1701  1702  1703  1704  1705

dp1[]   1       2       3        4         5        6

dp2[]    6      5       4        3         2         1

sum[]=dp1[]+dp2[]

sum[]    7     7       7        7         7         7

7是最大的倒叙和正序的人数之和,那么要算出最少的需要改变出队,也就是删除的

n-最大人数之和+1

所以最后答案是6-7+1=0

这道题跟我上一篇的合唱队形特别相似,想了解具体思路,看我上篇文章

相似题解

需要注意的是这个跟合唱排队不同,这个是可以等于的,允许等于存在,所以一定要加上等于,缺少了就过不了测试点。

下面是代码:

#include <bits/stdc++.h>
using namespace std;
int n, arr[110], dp1[110], dp2[110], sum[110];

int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> arr[i];
	}
	for (int i = 1; i <= n; i++) {
		dp1[i] = 1;
		for (int j = 1; j < i; j++) {
			if (arr[i] >= arr[j]) {
				dp1[i] = max(dp1[j] + 1, dp1[i]);
			}
		}
	}
	for (int i = n; i >= 1; i--) {
		dp2[i] = 1;
		for (int j = n; j > i; j--) {
			if (arr[i] >= arr[j]) {
				dp2[i] = max(dp2[j] + 1, dp2[i]);
			}
		}
	}
	for (int i = 1; i <= n; i++) {
		sum[i] = dp1[i] + dp2[i];
	}
	sort(sum + 1, sum + n + 1);
	cout << n - sum[n] + 1;
	return 0;
}

这里是红糖,记录我的小白成长史。

如果觉得对你有帮助的话可以点个赞,点个关注,创作不易,请多多支持。

我们下篇文章见!!

相关文章:

  • 深度学习|MAE技术全景图:自监督学习的“掩码魔法“如何重塑AI基础
  • FastExcel/EasyExcel简介以及源码解析
  • Ubuntu系统安装Minikube教程
  • π0及π0_fast的核心源码剖析——核心模块src的全面分析与解读:如何实现PaLI-Gemma、如何去噪生成动作
  • DTO 命名规范指南
  • 达梦数据库学习笔记@3
  • Unity DOTS 从入门到精通之 创建实体
  • Unity引擎使用HybridCLR(华佗)热更新
  • LangChain构建语言模型驱动应用的强大框架
  • 深入理解Linux网络随笔(四):内核是如何与用户进程协作的(下篇:多路I/O复用模型epoll)
  • c语言笔记 数组进阶题目的理解
  • 网络基础(一)【网络发展/认识协议/网络 VS 系统/以太网通信原理/重谈协议/网络中的地址管理】
  • 15 HarmonyOS NEXT UVList组件开发指南(二)
  • 先序二叉树的线索化,并找指定结点的先序后继
  • 1-1 驱动开发HelloWorld
  • 【定制开发】碰一碰发视频系统定制开发,支持OEM
  • 【Java】认识String类、字符串不可变性 + StringBuilder和StringBuffer —— 有码有图有真相
  • Java多线程与高并发专题——关于CopyOnWrite 容器特点
  • Cursor 使用经验,一个需求开发全流程
  • Spring为什么要用三级缓存解决循环依赖?
  • 中企动力网站推广/百度网页版主页
  • 有没有做图的网站/惠州百度seo在哪
  • 深圳手机app软件开发/重庆做seo外包的
  • 哈尔滨网站建设企业/app推广拉新
  • 范县网站建设价格/全网热度指数
  • 动态型网站建设哪里便宜/企业查询天眼查