合唱队形c语言编程,洛谷 P1091 合唱队形
题目描述
\(N\)位同学站成一排,音乐老师要请其中的\((N-K)\)位同学出列,使得剩下的\(K\)位同学排成合唱队形。
合唱队形是指这样的一种队形:设K位同学从左到右依次编号为\(1,2,…,K\),他们的身高分别为\(T_1,T_2,…,T_K\), 则他们的身高满足\(T_1<...>…>T_K(1 \le i \le K)\)
你的任务是,已知所有\(N\)位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。
输入输出格式
输入格式:
共二行。
第一行是一个整数\(N(2 \le N \le 100)\),表示同学的总数。
第二行有nn个整数,用空格分隔,第\(i\)个整数\(T_i(130 \le T_i \le 230)\)是第\(i\)位同学的身高(厘米)。
输出格式:
一个整数,最少需要几位同学出列。
输入输出样例
输入样例#1:
8
186 186 150 200 160 130 197 220
输出样例#1:
4
说明
对于\(50%\)的数据,保证有\(n \le 20n≤20\);
对于全部的数据,保证有\(n \le 100n≤100\)。
思路
此题是动态规划的基础题之一,我太lj了,最后想不出来怎么处理来得到最大值qwq
和日常生活中照照片一样,这个题要求的合唱队形要求两边低,中间高,也就是前一段是递增的,后一段是递减的,注意:并不一定正好分为左右人数相等的两半。
从左边开始,求出到每个数存在的最长上升子序列,然后再从右边做一次一样的操作,这样就能求出每个数字所在的上升子序列与下降子序列,分别用两个数组b和c记录
然后for循环进行枚举,求出b[i]+c[i]的最大值,最大值所对应的i就是i作为最高点时,场上留下的人最多,最后结果就是n-maxn+1,因为i位置的同学在计算maxn的时候被算了两次。
代码
#include
#define N 10100
#define INF 0x7f
using namespace std;
int a[N],b[N],c[N];
int main() {
int n;
scanf("%d",&n);
for(int i=1; i<=n; i++) {
scanf("%d",&a[i]);
}
for(int i=1; i<=n; i++) {
b[i]=1;
for(int j=1; j
if(a[i]>a[j]&&b[i]
b[i]=b[j]+1;
}
}
}
for(int i=n; i>0; i--) {
c[i]=1;
for(int j=n; j>i; j--) {
if(a[i]>a[j]&&c[i]
c[i]=c[j]+1;
}
}
}
int maxn=-INF;
for(int i=1; i<=n; i++) {
if (b[i]+c[i]>maxn)
maxn=b[i]+c[i];
}
maxn=n-maxn+1;
cout<
return 0;
}
合唱队形c语言编程,洛谷 P1091 合唱队形相关推荐
- 洛谷P1091 合唱队形
洛谷P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K他 ...
- 洛谷 P1091 合唱队形
题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2-,K,他们的身高分别为T1,T2, ...
- 洛谷 P1091 合唱队型
很容易想到维护一个最长上升子序列和一个最长下降子序列.然后枚举一个点k,取所有以k结尾的最长上升子序列和以k开头的最长下降子序列的长度的和中最大的,表示留下的人数.再用总人数减去这个,等于出队人数 另 ...
- 合唱队形(洛谷-P1091)
题目描述 N 位同学站成一排,音乐老师要请其中的( N−K )位同学出列,使得剩下的 KK 位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为 1,2,-,K ,他们的身高 ...
- 洛谷1091合唱队形
题目描述 N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K,他们的身高分别为T1,T ...
- C语言之洛谷刷题之路---顺序结构
一顺序结构 B2002 Hello,World! #include <stdio.h>int main() {printf("Hello,World! \n");ret ...
- 洛谷p1200题目c语言代码,洛谷P1200 [USACO1.1]你的飞碟在这儿
题目描述 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支持者.因此,他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走 ...
- 洛谷题库P1765手机C语言,[模拟] [洛谷] P1765 手机
还是困扰了我不少时间的 最早的思路是把题上的串穷举 ↓ 12abc3def4ghi5jkl6mno7pqrs8tuv9wxyz 设按键次数 t ...
- 洛谷 - 试炼场(全部题目备份)
整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...
- 洛谷 P5727 【深基5.例3】冰雹猜想
C语言基础系列文章 C语言 五种方法输出100以内的素数(质数) 源码 C语言分支结构超基础编程习题整理 详细分析附源码 C语言题解 洛谷P1614 爱与愁的心痛 详细分析源码 C语言题解 P5719 ...
最新文章
- AlarmManager与PendingIntent的联合使用(二)
- 小学计算机技术指导纲要,《中小学信息技术课程指导纲要(试行)》
- POJ 1936 字符匹配(水题)
- vue 每次弹框都初始化
- linux命令格式与快捷键
- python3 中的Json序列化、反序列化 和 字符编码的问题解决
- Linux命令(五)之service服务查找、启动/停止等相关操作
- 企业信息安全模型(成熟度模型)
- SQL注入风险高,手写 SQL 须谨慎
- JSON的4种解析方式使用以及对比
- android和夜神模拟器哪个好,天天模拟器和夜神安卓模拟器哪个好 两者功能对比...
- tensorflow-serving docker模型部署(以mnist为例)
- Yolov5笔记--检测bilibili下载好的视频
- 【图像隐藏】基于小波变换DWT实现数字水印嵌入提取含各类攻击附matlab代码
- 基于MATLAB的多进制数字调制信号的矢量星座图分析
- 《Lynda.com XML 必备教程》(Lynda.com XML Essential Training)CFE 教程
- 数字孪生 智慧工厂可视化决策系统
- [MODIS数据处理#2]常用的Arcmap内置工具(一)
- 常用集成电路功能简介 AD
- 【来日复制粘贴】使某列筛选的结果映射到标题部分
热门文章
- 什么是USBHOST、USB Slave和USB OTG?它们之间有什么区别 USB、MiniUSB、MicroUSB
- c语言json使用,cJSON使用(二)
- OA会议 04 (查询会议签字)
- 访问chm文件出现 已取消到该网页的导航的解决方法
- 识别合格ToB产品经理
- 深度学习 再次爆发_如何教自己再次学习
- CSDN:2020 年度 CSDN 博客之星评选——28 号【沉默王二】,感谢你投上的宝贵一票,感谢!
- 双网卡 跃点_有关win7 pppoe拨号网络的跃点数及win7 多路internet访问带宽叠加 - Microsoft Community...
- 【转】京东抢购服务高并发实践
- Android Backup功能之全面实战