OpenJ_Bailian - 2711
OpenJ_Bailian - 2711
N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。
合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <= K)。
你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。这里是引用
Input
输入的第一行是一个整数N(2 <= N <= 100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130 <= Ti <= 230)是第i位同学的身高(厘米)。
Output
输出包括一行,这一行只包含一个整数,就是最少需要几位同学出列。
Sample Input
8
186 186 150 200 160 130 197 220
Sample Output
4
动态规划解题
我的小学生思路:
先用求最长上升子序列的思路,分别dp两次求从序列头分别到每个数的最长上升子序列盒每个数到序列尾的最长下降子序列(其实就是从尾向前看的最长上升子序列),把他们存进数组
然后遍历数组dpu和dpd,算出如果以某个数为最高身高,需要请几个人出队,然后输出最小的即可。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;int main()
{int n,m,a[101],dpu[101],dpd[101],up,down,minn;scanf("%d",&n);minn=100;for(int i=0;i<n;i++){scanf("%d",&a[i]);}for(int i=0;i<101;i++)dpu[i]=dpd[i]=1;for(int j=0;j<n;j++){up=down=1;for(int k = 0;k <= j; k++){if(a[j]>a[k]){dpu[j]=max(dpu[k]+1,dpu[j]);}}}for(int j=n-1;j>=0;j--){for(int p=n-1;p>=j;p--){if(a[j]>a[p]){dpd[j]=max(dpd[j],dpd[p]+1);}}}for(int i=0;i<n;i++){m=n-dpd[i]-dpu[i]+1;if(minn>m)minn=m;}printf("%d",minn);return 0;
}
OpenJ_Bailian - 2711相关推荐
- 【OpenJ_Bailian - 2711 】 合唱队形(dp,枚举中间顶点)
题干: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, -, K,他们的 ...
- OpenJ_Bailian 2748
题目链接:OpenJ_Bailian 2748 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列. 我们假设对于小写字母有'a' < 'b' < - < 'y' &l ...
- OpenJ_Bailian - 1088:滑雪
OpenJ_Bailian - 1088: Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你. ...
- OpenJ_Bailian - 3468
题目链接:OpenJ_Bailian - 3468 一开始,我以为只有3和5两个电池,看了别的题面发现理解错了,电池电量是随机的,而不是固定的3和5. 思路:设最大电池电量为 maxmaxmax ,其 ...
- DNA Sorting(OpenJ_Bailian - 1007)
B - DNA Sorting 来源: OpenJ_Bailian - 1007 Time limit:1000 ms Memory limit:65536 kB OS:Linux ...
- 海景房 OpenJ_Bailian - 2945 JAVA
F - 海景房 OpenJ_Bailian - 2945 开发商计划在海边建造许多海景房的楼房,工程师发现在设计图中由于某些靠海的楼太高,导致有些稍远的楼房即使站在楼顶也不能看到海.开发商和工程师就在 ...
- 上周热点回顾(10.27-11.2)
热点随笔: · 我在阿里这仨月(Barret Lee) · 一个前快播员工眼中的快播(虫师) · [看后请推荐]程序员接私单不传秘籍之二:单子从哪儿来?(thanksmoons) · 淘宝code-- ...
- OpenJ_Bailian 4148 生理周期
题目地址: https://vjudge.net/problem/OpenJ_Bailian-4148 人生来就有三个生理周期,分别为体力周期.感情周期和智力周期,它们的周期长度分别为23天.28天和 ...
- poj/OpenJ_Bailian - 2528 离散化+线段树
传送门:http://bailian.openjudge.cn/practice/2528?lang=en_US //http://poj.org/problem?id=2528 题意: 给你n长海报 ...
最新文章
- python开发桌面软件-python适合windows的桌面应用程序开发吗?
- java序列化 jar_使用序列化将对象传递给另一个JVM – 相同的Java版本和jar(都运行我们的应用程序)...
- html中空格字符实体整理
- (五)HTML5本地存储——Web Storage
- layui 折叠面板使用无效问题
- 【Spark大数据处理】动手写WordCount
- spine骨骼动画基础一文通
- VS2017内使用Coin3d第三方库的配置方法(含库与案例)
- 管理者如何对待员工反馈
- latex补集怎么打
- 参考文献起止页码怎么写_【求助】有全文参考文献但没有起止页码如何办
- 2022年docker面试题大全(持续更新中)
- 5.21 ticker的使用
- 拓嘉启远电商:拼多多直通车烧钱太多的原因
- Tex, LaTex, pdflatex, xelatex, xetex等的区别和关系
- Wap 手机上网设置
- 各串口设备节点/dev/tty* 的区别
- 04-再探JavaScript
- 2020 蓝桥杯大学 B 组省赛模拟赛 七巧板
- ifunbox_如何使用iFunBox作为强大的iTunes替代产品