3.合唱队
来源:互联网 发布:ios版cf手游刷枪软件 编辑:程序博客网 时间:2024/05/17 01:56
计算最少出列多少位同学,使得剩下的同学排成合唱队形
说明:
N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。
合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足存在i(1<=i<=K)使得Ti<T2<……<Ti-1Ti+1>……>TK。
你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。
参考代码:
#include <iostream> #include <algorithm> using namespace std; int main() { int n,arr[100],answer=0; cin>>n; for(int i=0;i<n;i++) cin>>arr[i]; int *listrise=new int[n]; //上升子序列 for (int i=0;i<n;i++) { listrise[i]=1; for (int j=0;j<i;j++) { if ((arr[i]>arr[j])&&(listrise[j]+1>listrise[i])) listrise[i]=listrise[j]+1; } } int *listdown=new int[n]; //下降子序列 for (int i=n-1;i>=0;i--) { listdown[i]=1; for (int j=n-1;j>i;j--) { if ((arr[i]>arr[j])&&(listdown[j]+1>listdown[i])) listdown[i]=listdown[j]+1; } } for(int i=0;i<n;i++) if(listrise[i]+listdown[i]-1>answer) answer=listrise[i]+listdown[i]-1; cout<<n-answer<<endl; }
0 0
- 3.合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 合唱队
- 互联网广告系统综述八机器学习与数据
- ACM比赛排名与罚时计算问题
- win7下面jdk的那些事
- linux下配置mysql开机自启动
- 非NSResponder类捕捉按键消息[How to capture ESC key in a Cocoa application]
- 3.合唱队
- 多文件结构
- 【Web 前端】CSS样式
- s5pv210中断法控制LED灯
- Injured Queen Problem+uva+dp
- 环境配置-无障碍搜索外文资料
- 使用maven 一步步构建springmvc的工程
- $.extend和$.fn.extend的区别
- Windows下无法启动MYSQL服务”1067 进程意外终止”解决办法