洛谷P1091 合唱队形
输入输出样例
8
186 186 150 200 160 130 197 220
4
此题意在先升后降子序列,单调递增子序列,单调递减子序列当中找到最长的一组序列。
因此我们可以正向便利,1~n,i>=1&&i<=n,dp[i]为以第i个数结尾的单调递增子序列的长度。
dp[i]=max(dp[j],dp[i])(1<=j<=i&&a[j]<=a[i])a[i]为同学升高。
然后同理逆向跑一边,得到dp1数组 ,dp1[i]为以第i个结束的最长单调递增子序列。
最后我们从1~n便利一遍,ans=max(dp[i]+dp1[i]-1,ans);n-ans为答案。。。。。
下面为代码:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <vector>
#include<map>
using namespace std;
#define N 1000
int a[N],b[N],c[N];
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
for(int i=;i<=n;i++)
{
for(int k=i-;k>=;k--)
if(a[k]<a[i])
b[i]=max(b[i],b[k]+);
}
for(int i=n;i>=;i--)
{
for(int k=i+;k<=n+;k++)
if(a[i]>a[k])
c[i]=max(c[i],c[k]+);
}
int sum=;
for(int i=;i<=n;i++)
{
sum=max(sum,b[i]+c[i]-);
}
printf("%d\n",n-sum);
return ;
}
洛谷P1091 合唱队形的更多相关文章
- 洛谷 P1091 合唱队形
\[传送门在这里呀\] 题目描述 \(N\)位同学站成一排,音乐老师要请其中的\((N-K)\)位同学出列,使得剩下的\(K\)位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次 ...
- codevs1058 合唱队形==洛谷P1091 合唱队形
P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的 ...
- 洛谷p1091合唱队形题解
题目 合唱队形首先要满足的是从1这个位置到中间任意的位置为单增的,从中间任意的位置到最后是单减的,且长度最长.这样才能满足出列的同学最少. 如果要满足这个条件那么我们可以先预处理出每个点的从前找的最长 ...
- [NOIP2004] 提高组 洛谷P1091 合唱队形
题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2, ...
- 洛谷—— P1091 合唱队形
https://www.luogu.org/problem/show?pid=1091#sub || http://codevs.cn/problem/1058/ 题目描述 N位同学站成一排,音乐 ...
- 洛谷P1091合唱队形(DP)
题目描述 NNN位同学站成一排,音乐老师要请其中的(N−KN-KN−K)位同学出列,使得剩下的KKK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K1,2, ...
- (Java实现) 洛谷 P1091合唱队形
题目描述 NN位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的KK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K1,2,-,K,他们的身 ...
- 洛谷 P1091合唱队列
吾王剑之所指,吾等心之所向 ——<Fate/stay night> 题目:https://www.luogu.org/problem/P ...
- 洛谷 1091 合唱队形(NOIp2004提高组)
[题解] 分别做一遍最长上升序列和最长下降序列,再枚举峰的位置计算答案即可. #include<cstdio> #include<algorithm> #include< ...
随机推荐
- 《R语言入门与实践》第二章:R包和帮助文档
这一章讲了两方面的内容,如何使用 R 包和帮助文档. R包 下载 R 包 命令: install.packages("<nameofpackage>") R 会话中启用 ...
- YY的GCD
YY的GCD 给出T个询问,询问\(\sum_{i=1}^N\sum_{j=1}^M(gcd(i,j)\in prime)\),T = 10000,N, M <= 10000000. 解 显然质 ...
- LINUX内核PCI扫描过程
LINUX内核PCI扫描过程 内核版本 3.10.103 1. ACPI热插拔扫描subsys_initcall(acpi_init)@drivers/acpi/bus.c |-acpi_scan_i ...
- css中position 定位的兼容性,以及定位的使用及层级的应用
一.首先我们来看看定位的兼容性,当然是在IE6.7但是现在大多数公司都已经不考虑了 我们就作为一个了解吧: 1.在IE67下,子元素有相对定位的话,父级的overflow:hidden包不住子元素 解 ...
- kafka 消费模型图
- Python3+slowloris安装使用教程
一.说明 今天提到slowloris,这东西看着很眼熟,应该是以前局方打算用来刷竞赛积分的工具.我总觉得DoS没什么意思,但记不得怎么用了所以还是研究一下. 二.安装 slowloris就是一个pyt ...
- 查看JVM内存使用状况
1.jps:查看本地正在运行的java进程和进程ID(pid) 2.jinfo pid,查看指定pid的所有JVM信息 1)jinfo -flags pid 查询虚拟机运行参数信息. 2)jinfo ...
- mysql插件的初始化
- Problem - 1062 http://acm.hdu.edu.cn/showproblem.php?pid=1062
对输入字符串的字符的倒置,在这个程序中,我觉得自己最大的问题是怎么识别一个字符,代码中有t个字符串,每个字符串,每个字符串中有若干个单词,单词之间有空格,所以对于下列的正确答案,我的疑惑是当我键盘输入 ...
- java按照指定格式输出系统时间
public class TimeFour { public static void main(String[] args) throws ParseException{ TimeFour four ...

