[华为]DP合唱队形
2015-08-26 00:17
316 查看
Description
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
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
#include<iostream> #include<string.h> using namespace std; int main () { //输入数据 int stNum; cin>>stNum; const int stLen=stNum; int* stu=new int[stLen]; for(int i=0;i<stLen;i++) cin>>stu[i]; //设置左侧最大数目和右侧最大数目数组 int* qleft=new int[stLen]; int* qright=new int[stLen]; memset(qleft,0,sizeof(int)*stLen); memset(qright,0,sizeof(int)*stLen); //左侧动态规划 for(int i=0;i<stLen;i++) { int left=i-1; while(left>=0) { if(stu[left]<stu[i]) { if(qleft[i]<qleft[left]+1) qleft[i]=qleft[left]+1; } --left; } } //右侧动态规划 for(int i=stLen-1;i>=0;i--) { int right=i+1; while(right<=stLen-1) { if(stu[right]<stu[i]) { if(qright[i]<qright[right]+1) qright[i]=qright[right]+1; } ++right; } } //合并判断最大值 int max=0; for(int i=0;i<stLen;i++) { if(qright[i]+qleft[i]>max) max=qright[i]+qleft[i]; } cout<<stLen-max-1; delete[] stu; delete[] qright; delete[] qleft; }
相关文章推荐
- iOS截取视频预览图,截图方向错误的解决
- Java集合之Collection
- Java集合之Collection
- Java-Collection
- mysql 错误注意事项
- 和猴子报数类似的题目
- iOS 类似简单的第三方微博客户端,可进行登录微博浏览相关信息
- ural 1930. Ivan's Car
- 如何从Apache官网下载windows版apache服务器
- 常用端口
- rpm -e yum 之后
- Java四种引用类型
- Java四种引用类型
- UCI提供给shell和lua使用的配置接口
- Java四种引用类型
- 树与二叉树的转换
- pthread_cond_wait和pthread_cond_signal以及互斥变量的使用情况
- 22.2015.08.18第二十三课mvc1,2(mvc环境搭建)
- 关于位操作的知识点
- 题目:买卖股票的最佳时机