zoukankan      html  css  js  c++  java
  • [华为]DP合唱队形

    Description
    N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 
    合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <= K)。
    你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。 

    Input
    输入的第一行是一个整数N(2 <= N <= 100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130 <= Ti <= 230)是第i位同学的身高(厘米)。

    Output
    输出包括一行,这一行只包含一个整数,就是最少需要几位同学出列。

    Sample Input
    8
    186 186 150 200 160 130 197 220

    Sample Output
    4
     
     1 #include<iostream>
     2 #include<string.h>
     3 using namespace std;
     4 
     5 int main ()
     6 {
     7 //输入数据
     8 int stNum;
     9 cin>>stNum;
    10 const int stLen=stNum;
    11 int* stu=new int[stLen];
    12 for(int i=0;i<stLen;i++)
    13 cin>>stu[i];
    14 
    15 //设置左侧最大数目和右侧最大数目数组
    16 int* qleft=new int[stLen];
    17 int* qright=new int[stLen];
    18 memset(qleft,0,sizeof(int)*stLen);
    19 memset(qright,0,sizeof(int)*stLen);
    20 
    21 //左侧动态规划
    22 for(int i=0;i<stLen;i++)
    23 {
    24 int left=i-1;
    25 while(left>=0)
    26 {
    27 if(stu[left]<stu[i])
    28 {
    29 if(qleft[i]<qleft[left]+1)
    30 qleft[i]=qleft[left]+1;
    31 }
    32 --left;
    33 }
    34 }
    35 
    36 //右侧动态规划
    37 for(int i=stLen-1;i>=0;i--)
    38 {
    39 int right=i+1;
    40 while(right<=stLen-1)
    41 {
    42 if(stu[right]<stu[i])
    43 {
    44 if(qright[i]<qright[right]+1)
    45 qright[i]=qright[right]+1;
    46 }
    47 ++right;
    48 }    
    49 }
    50 
    51 //合并判断最大值
    52 int max=0;
    53 for(int i=0;i<stLen;i++)
    54 {
    55 if(qright[i]+qleft[i]>max)
    56 max=qright[i]+qleft[i];
    57 }
    58 
    59 cout<<stLen-max-1;
    60 
    61 delete[] stu;
    62 delete[] qright;
    63 delete[] qleft;
    64 }
  • 相关阅读:
    C#处理Json文件
    突袭HTML5之WebSocket入门1 WebSocket协议
    突袭HTML5之Canvas 2D入门3 变换与组合
    突袭HTML5之Canvas 2D入门5 事件与动画
    Ruby札记1 安装、运行
    突袭HTML5之WebSocket入门4 开发框架express
    突袭HTML5之Canvas 2D入门4 直接操作像素
    Excel VBA 学习总结 实战之惑
    突袭HTML5之WebSocket入门2 高效服务器Node.js
    自定义xtraGrid mater/ detail 数据结构显示
  • 原文地址:https://www.cnblogs.com/lsr-flying/p/4759097.html
Copyright © 2011-2022 走看看