[NOIP2004 提高组] 合唱队形 - 洛谷

思路:最少出列,即挑出最多,即找最长递增子序列和最长递减子序列

设dp1[i]为以h[i]结尾的最长递增子序列

dp2[i]为以h[i]开头的最长递减子序列

结果为n-(dp1[i]+dp2[i]-1)的最小值

注意max,min;

注意1~n还是0~n-1;

注意结果要-1(h[i]算2次)

如果思路对,举简单例子调试

#include<iostream>
#include<algorithm>
using namespace std;int n;
int h[101];
int dp1[101];//存放以h[i]为结尾的最长递增子序列的长度
int dp2[101];//存放以h[i]为起点的最长递减子序列的长度
int main()
{cin>>n;for(int i=0;i<100;i++){dp1[i]=1;dp2[i]=1;}for(int i=1;i<=n;i++){cin>>h[i];}dp1[0]=0;dp1[1]=1;
for (int i = 2; i <= n; i++){for (int j = 1; j <= i - 1; j++){if (h[j] < h[i])dp1[i] = max(dp1[i], dp1[j] + 1);}}dp2[n - 1] = 1;for (int i = n - 2; i >= 0; i--) {for (int j = i + 1; j <= n - 1; j++){if (h[j] < h[i])dp2[i] = max(dp2[i], dp2[j] + 1);}}int res = 0;for (int i = 1; i <= n; i++){res = max(res, dp1[i] + dp2[i])-1;}cout << n-res;} 

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

  1. 题目1131:合唱队形(最长递增子序列进阶)

    题目链接:http://ac.jobdu.com/problem.php?pid=1131 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  2. 【动态规划】计蒜客:蒜头君闯关(最长递增子序列的变体)

    题意: 求递增子序列之和的最大值 dp[i]:以nums[i]结尾的递增子序列之和的最大值  初始化:                 dp[0]=nums[0] 状态转移方程: dp[i]=max{ ...

  3. 【动态规划】计蒜客:跳木桩(最长递增子序列的变体)

    蒜头君面前有一排 n 个木桩,木桩的高度分别是h1,h2,h3-hn.蒜头第一步可以跳到任意一个木桩,接下来的每一步蒜头不能往回跳只能往前跳,并且跳下一个木桩的高度 不大于 当前木桩.蒜头君希望能踩到 ...

  4. 动态规划设计方法详解最长递增子序列

    很多读者反应,就算看了前文动态规划详解,了解了动态规划的套路,也不会写状态转移方程,没有思路,怎么办?本文就借助「最长递增子序列」来讲一种设计动态规划的通用技巧:数学归纳思想. 最长递增子序列(Lon ...

  5. 《动态规划入门》刷题笔记(更新中)

    <动态规划>刷题笔记 1. 斐波那契数 2. 第 N 个泰波那契数 3. 爬楼梯 4. 使用最小花费爬楼梯 5. 打家劫舍 6. 打家劫舍 II 7. 删除并获得点数 8. 跳跃游戏 9. ...

  6. 【leetcode刷题笔记】动态规划

    #[leetcode刷题笔记]动态规划 石子游戏 public boolean stoneGame(int[] piles) {int N = piles.length;// dp[i][j] is ...

  7. LeetCode刷题笔记-动态规划-day4

    文章目录 LeetCode刷题笔记-动态规划-day4 55. 跳跃游戏 1.题目 2.解题思路 3.代码 45. 跳跃游戏 II 1.题目 2.解题思路 3.代码 LeetCode刷题笔记-动态规划 ...

  8. leetcode分类刷题笔记

    leetcode分类刷题笔记--基于python3 写在前面 1.做题如果实在想不出时间复杂度比较优的解法,可以先写出暴力解法,尝试在其基础上优化 2.排序.双指针.二分等--经常可以优化时间复杂度 ...

  9. 我收藏的谷歌和阿里大佬的刷题笔记

    金三银四大家在准备校招.社招,或者闲暇的时候,都可以刷刷 Leetcode,保持良好的手感. 之前刷题,一直觉得漫无目的地刷,效率很低.后来发现了两个刷题笔记,谷歌大佬高畅和BAT大佬霜神写的 Lee ...

最新文章

  1. python udp client
  2. PostgreSQL 9.4版本的物化视图更新
  3. Modelsim10.7中文注释乱码问题
  4. Java 9:对可选的增强
  5. 怎样把连续的多个commit整理成1个?
  6. 双系统安装:Deepin 尝鲜
  7. configure: error: Library requirements (libpcre >= 7.8) not met
  8. 哈佛结构 Linux,哈佛结构与冯诺依曼结构区别
  9. 计算机基础知识试题和答案6,计算机基础知识试题及答案选择题(九)
  10. dism++封装系统使用教程_Dism++系统精简利器 10.1.4.7
  11. 锐浪报表加载List泛型数据
  12. Mac电脑没声音了怎么办?
  13. Cyclone v器件关键参数
  14. Android——超简单悬浮窗使用教程
  15. excel空白单元格自动下下填充上一个单元格的值
  16. JavaWeb 服务器与客户端储存
  17. 成人世界的人际交往中有哪些潜规则?
  18. Please, configure Web Facet first!
  19. 上海社科院:沪30岁以下青年购房压力
  20. linux:Nginx+https双向验证(数字安全证书)

热门文章

  1. Bailian2726 采药【模拟】
  2. 2018 ACM-ICPC Asia Beijing Regional Contest题解
  3. HDU1873 看病要排队【模拟+优先队列】
  4. 2016CCF-CCSP竞赛:第1题-虚拟机设计(共3题)
  5. 【读书笔记】 —— 金融
  6. 中英文对照 —— 医学与医院
  7. 从鸽笼原理到拉姆塞数
  8. 标准模板库(STL)之 map 列传
  9. python 位运算符与逻辑运算符(字符串的逻辑运算)
  10. 数据可视化(data visualization)—— seaborn