【最优方案】合唱队形

简介: 【最优方案】合唱队形

 1126. 合唱队形

(File IO): input:chorus.in output:chorus.out

时间限制: 1000 ms  空间限制: 262144 KB  具体限制  

Goto ProblemSet

题目描述

N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。


合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<...<Ti>Ti+1>…>TK(1<=i<=K)。


你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。

输入

输入文件chorus.in的第一行是一个整数N(2<=N<=100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130<=Ti<=230)是第i位同学的身高(厘米)。

输出

输出文件chorus.out包括一行,这一行只包含一个整数,就是最少需要几位同学出列。

样例输入

8

186 186 150 200 160 130 197 220




样例输出

4

 

思路:

求最长上升序列fi,找最长下降子序列gi,相加变成ti;再循环一遍,找最大ti,输出结果(动态规划)

代码:

#include<bits/stdc++.h>
using namespace std;
int n,a[105],f[105],g[105];
int main(){
  cin>>n;
  for (int i=1; i<=n; i++) cin>>a[i];
  fill(f,f+N,1);
  fill(g,g+N,1);
  for (int i=2; i<=n; i++)
    for (int j=1; j<i; j++)
      if (a[j]<a[i]) f[i]=max(f[i],f[j]+1);
  for (int i=n-1; i>=1; i--)
    for(int j=n; j>i; j--)
      if (a[j]<a[i]) g[i]=max(g[i],g[j]+1);
  int ans=f[1]+g[1]-1;
  for (int i=2; i<=n; i++) ans=max(ans,f[i]+g[i]-1);
  cout<<n-ans<<endl;
  return 0;
}

image.gif

相关文章
|
8月前
|
SQL 开发框架 算法
【MFAC】基于偏格式动态线性化的无模型自适应控制
【MFAC】基于偏格式动态线性化的无模型自适应控制
|
监控 算法 安全
基于伽马变换自适应修正的全景首尾融合算法
基于伽马变换自适应修正的全景首尾融合算法
|
8月前
|
算法
飞行员配对方案(Dinic求最大二分图匹配(对匈牙利算法的优化),以及二分图的建图方式)
飞行员配对方案(Dinic求最大二分图匹配(对匈牙利算法的优化),以及二分图的建图方式)
130 0
|
2月前
|
算法
基于改进自适应分段线性近似(IAPLA)的微分方程数值解法研究: 从简单动力系统到混沌系统的应用分析
IAPLA方法为复杂动力系统的数值模拟提供了一个灵活、高效且易于实现的框架,在众多实际应用中可以作为现有数值求解器的有效替代方案。
38 2
基于改进自适应分段线性近似(IAPLA)的微分方程数值解法研究: 从简单动力系统到混沌系统的应用分析
|
5月前
|
机器学习/深度学习 数据处理 Python
深入理解双变量(二元)正态投影:理论基础、直观解释与应用实例
本文探讨了统计学与机器学习中的二元投影技术,它基于二元正态分布,用于预测一个变量在给定另一变量值时的期望值。文章分为三部分:首先介绍了二元正态投影的基本公式及其在回归中的应用;接着通过直观解释和模拟展示了不同相关性下变量间的关系;最后运用投影公式推导出线性回归的参数估计,并通过实例说明其在预测房屋价格等场景中的应用。附录中详细推导了二元线性投影的过程。二元投影作为一种强大工具,在数据分析中帮助简化复杂问题并揭示数据背后的规律。
70 1
深入理解双变量(二元)正态投影:理论基础、直观解释与应用实例
|
6月前
|
Shell vr&ar 图形学
数学库,3D建模库,设计之图形化设计方案公式,3D建模库,圆柱体,圆的计算方式,三角形的计算方式
数学库,3D建模库,设计之图形化设计方案公式,3D建模库,圆柱体,圆的计算方式,三角形的计算方式
|
6月前
|
算法 Java 程序员
三阶魔方公式解析与优化技巧
三阶魔方公式解析与优化技巧
|
8月前
|
数据可视化 数据建模
R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系
R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系
Matlab:如何利用层次分析法(升级版)计算具有多重指标的判断矩阵的一致性检验和权重
Matlab:如何利用层次分析法(升级版)计算具有多重指标的判断矩阵的一致性检验和权重
390 0
|
存储 人工智能 算法
鲁棒优化入门(4)-两阶段鲁棒优化及行列生成算法(C&CG)超详细讲解
        鲁棒优化是应对数据不确定性的一种优化方法,但单阶段鲁棒优化过于保守。为了解决这一问题,引入了两阶段鲁棒优化(Two-stage Robust Optimization)以及更一般的多阶段鲁棒优化,其核心思想是将决策问题分为两个阶段。第一阶段是进行初步决策,第二阶段是根据第一阶段的决策结果制定更好的决策策略,应对数据不确定性的影响。这种方法可以降低保守性,提高鲁棒性。

热门文章

最新文章