Advertisement

动态规划 合唱队形 最长递增子序列 变形

阅读量:

题目描述
共有N位学生排成一行,音乐教师需要让其中的(N-K)位学生离开队列,从而使得剩余的K位学生无需调整位置即可构成合唱队形。

合唱队形的定义为:若将K位学生的身高依次标记为T1, T2, …, TK,从左至右排列,则他们的身高应满足T1 < T2 < … < Ti,同时Ti > Ti+1 > … > TK(其中1 ≤ i ≤ K)。
任务要求:在已知所有N位学生的身高数据的前提下,计算最少需要多少名学生离开队列,才能使剩下的学生形成符合上述条件的合唱队形。

输入
输入的第一行包含一个整数N,表示学生的总人数。
第二行由n个整数组成,以空格分隔,第i个整数Ti代表第i位学生的身高(单位:厘米)。

输出
输出仅包含一行,该行中只有一个整数,即最少需要离开队列的学生人数。

解题思路
设n位学生的身高存储于数组a[n]中(此处数组长度固定为n仅用于便于理解)。

总体思路

复制代码
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    
    int inc1[200],inc2[200],a[200];
    //inc1-->longest increase array from head to tail

全部评论 (0)

还没有任何评论哟~