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

P1091 [NOIP 2004 提高组] 合唱队形

题目链接:

思路:

题目意思,找出最少的同学出列,保证学生 1-t 上升, t-n 下降。我们只要求出每个点的最长上升子序列和最长不上升子序列,然后总人数-最长上升子序列和最长不上升子序列+1,就是最少同学出列。

代码:

#include<bits/stdc++.h>
#define int long long 
using namespace std;
const int N = 110;int n, arr[N];
int dp[N], g[N];signed main(){cin >> n;for(int i =1; i <= n; i++) cin >> arr[i];//上升for(int i = 1; i <= n; i++){dp[i] = 1;for(int j = 1;  j< i; j++){if(arr[j] < arr[i]){dp[i] = max(dp[i], dp[j]+1);}}}//下降for(int i = n; i >=1; i--){g[i] = 1;for(int j =n; j > i; j--){if(arr[j] < arr[i]){g[i] = max(g[i], g[j]+1);}}}//找到最长上升子序列和最长不上升子序列数量int ans = 0;for(int i =1; i <= n; i++){ans = max(ans, g[i]+dp[i]);}cout << n - ans +1<< endl;return 0;
}


http://www.mrgr.cn/news/96453.html

相关文章:

  • GLSL(OpenGL 着色器语言)基础语法
  • 北大人工智能研究院朱松纯:“中国的AI叙事” 存在认知偏差
  • LLMs之PE:《Tracing the thoughts of a large language model》翻译与解读
  • cpp栈操作
  • 详解list容器
  • 智能体开发平台与大模型关系图谱
  • python和Java的区别
  • Day18 -实例:app信息收集工具(Appinfoscanner、Mobsf)的配置和使用
  • QtAV入门
  • 线性回归算法
  • Java中的异常
  • 视频联网平台智慧运维系统:智能时代的城市视觉中枢
  • JavaScrip-模版字符串的详解
  • 基于javaweb的SpringBoot房屋出租系统设计与实现(源码+文档+部署讲解)
  • Three.js 快速入门教程【十九】CSS2DRenderer(CSS2D渲染器)介绍,实现场景中物体或设备标注标签信息
  • Linux ping/telnet/nc命令
  • 2023第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组(真题题解)(C++/Java题解)
  • WordPress essential-addons-for-elementor xss漏洞
  • 网络运维学习笔记(DeepSeek优化版) 024 HCIP-Datacom OSPF域内路由计算
  • C++的模板(十四):更多的自动内存管理