合唱队形

题意:给定一个数列,取出x个数,使得数列形为:T1​<…<Ti​>Ti+1​>…>TK​(1≤i≤K),求最小的x。

分析:这题就是dp入门题,就是正着求一边最长上升子序列,反着求一边最长上升子序列,然后对于每一个点的两次上升序列求和,取一个最大值

上代码

#include<bits/stdc++.h>
#define x first
#define y second
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
typedef pair<int,pair<int,int> >PIII;
namespace IO{inline LL read(){LL o=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){o=o*10+c-'0';c=getchar();}return o*f;}
}using namespace IO;
const int N=1e3+7,M=1<<N,INF=0x3f3f3f3f;
int g[N],f[N],a[N];
int main(){int n,res=0;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];//正着求一遍最长上升子序列for(int i=1;i<=n;i++){g[i]=1;for(int j=1;j<i;j++){if(a[j]<a[i])g[i]=max(g[i],g[j]+1);}}//反着求一遍最长上升子序列for(int i=n;i;i--){f[i]=1;for(int j=n;j>i;j--){if(a[j]<a[i])f[i]=max(f[i],f[j]+1);}}//最后判断每个位置的答案,减一是因为中间的那个点被多加了一次for(int i=1;i<=n;i++){res=max(res,g[i]+f[i]-1);}cout<<n-res<<endl;return 0;
}

合唱队形(DP算法入门)相关推荐

  1. tyvj 1067 合唱队形 dp LIS

    P1067 合唱队形 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2004 提高组 第三道 描述 N位同学站成一排,音乐老师要请其中的(N-K)位 ...

  2. P1091 合唱队形[单调性+DP]

    题目来源:洛谷 题目描述 N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K,他们的身高 ...

  3. UOJ #214 合唱队形 (概率期望计数、DP、Min-Max容斥)

    UOJ #214 合唱队形 (概率期望计数.DP.Min-Max容斥) 9个月的心头大恨终于切掉了!!!! 非常好的一道题,不知为何uoj上被点了70个差评. 题目链接: http://uoj.ac/ ...

  4. 【OpenJ_Bailian - 2711 】 合唱队形(dp,枚举中间顶点)

    题干: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形.  合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, -, K,他们的 ...

  5. 【DP】合唱队形(jzoj 1122)

    合唱队形 jzoj 1122 题目大意: 有n个人,按一定的顺序站成一排,最少减去多少个人可以使队列以一个人为中心,两边分别递减 输入样例 8 186 186 150 200 160 130 197 ...

  6. 【动态规划刷题笔记】线性dp:合唱队形(最长递增子序列的变体)

    [NOIP2004 提高组] 合唱队形 - 洛谷 思路:最少出列,即挑出最多,即找最长递增子序列和最长递减子序列 设dp1[i]为以h[i]结尾的最长递增子序列 dp2[i]为以h[i]开头的最长递减 ...

  7. 算法精品讲解(2)——DP问题入门(适合零基础者,一看就会)

    目录 前言 DP问题它是什么(了解) 从中学的例题谈起 再来说一下,DP问题的核心思想(理解) DP问题的解决方法 先说方法论: 再说具体的例子 例一: 例二: 例三: DP和搜索的关系 结语 前言 ...

  8. 语法入门*算法入门题单

    作者:王清楚 链接:https://ac.nowcoder.com/discuss/817596?type=101&order=0&pos=1&page=4&chann ...

  9. 【新手上路】语法入门算法入门题单

    作者:王清楚 链接:[新手上路]语法入门&算法入门题单_ACM竞赛_ACM/CSP/ICPC/CCPC/比赛经验/题解/资讯_牛客竞赛OJ_牛客网 来源:牛客网 介绍:本题单分为语法入门和算法 ...

  10. 合唱队形(动态规划)

    [题目描述] N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的KK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K,他们的身高分别为T1 ...

最新文章

  1. Delphi 的内存操作函数(2): 给数组指针分配内存
  2. SpringBoot中常见的错误
  3. java 滚轮页面缩放_急..JAVA 在画布上画拖动滚动条可扩大缩小的长方形
  4. 使用WMI对象收集计算机信息
  5. TCP流量控制与拥塞控制区别
  6. MacOS 好用的插件和图形界面程序
  7. 网络打印机 RPC服务器不可用
  8. 基于 MongoDB 动态字段设计的探索 (二) 聚合操作
  9. HTML5本地存储详解
  10. HTML5教程:1.1 迎接新的Web时代
  11. 拍人像的时候你喜欢哪种模特?
  12. H3CNE,H3CSE知识点,重点汇总。
  13. Java人事管理系统设计
  14. 微软输入法数字有间隔_各种中文输入法中输入间隔号“·”的措施
  15. 基于Spring Boot 2 和 Vue.js 2 的 食品科学与工程学院网站的设计与实现
  16. 史上最难的大学专业 计算机 土木建筑 医学,大学最易挂科的专业,智商不够别报考,不然很难毕业!...
  17. Eclipse护眼背景及字体设置
  18. DHCP协议详解及DHCP服务的配置
  19. 点餐系统架构模型_餐馆点餐系统课程设计
  20. Apple quietly slips WebRTC audio, video into Safari's WebKit spec

热门文章

  1. 推荐:dhtmlx系列js工具包
  2. dhtmlxGantt 版本比较-Crack
  3. 秒搜神器everything背后的索引原理
  4. 手机麦克风声音太大_让手机麦克风声音变大的软件
  5. 基于javaweb+jsp的小蜜蜂扩音器网上商城系统(java+JSP+Servlet+JDBC+Ajax+mysql)
  6. ST-LINK烧录stm32程序步骤
  7. Php freeradius 认证,FreeRADIUS 配置认证记录入数据库
  8. matlab中phantom函数,matlab官网上下的phantom3d不对
  9. NiFi 1.16.3 生产使用的更新及BUG。
  10. 鲁班H5页面生成工具源码