题解 | 合唱队形

合唱队形

https://www.nowcoder.com/practice/0045cd3e39634a66ada63c2adeb49234

//  #牛客春招刷题训练营# https://www.nowcoder.com/discuss/726480854079250432
//  思路:左边前缀最长递增,右边后缀最长递减,然后枚举每个点找出最大的递增+递减-1;(思路来自题解)
//  题目看错了,我以为最高的要在中间
#include <iostream>
#include <vector>
using namespace std;

vector<int> abc(1010, 1), cba(1010, 1), a(1010);//------abc记录递增,cba记录递减,a记录输入
int main() {
  ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
  int n;
  cin >> n;
  cin >> a[0];
  for (int i = 1; i < n; i++){//--------输入,同时维护abc
    cin >> a[i];
    for (int j = 0; j < i; j++){
      if (a[j] < a[i]) abc[i] = max(abc[i], abc[j] + 1);
    }
  }
  for (int i = n - 1; i >= 0; i--){//-----------处理cba
    for (int j = n - 1; j > i; j--){
      if (a[j] < a[i]) cba[i] = max(cba[i], cba[j] + 1);
    }
  }
  int ans = 0;
  for (int i = 0; i < n; i++){//----------枚举
    ans = max(abc[i] + cba[i] - 1, ans);
  }
  cout << n - ans;//------------记得题目要的是最少出列几个人,要用n减
}
// 64 位输出请用 printf("%lld")

#写题解领奖励##牛客春招刷题训练营#
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-21 13:38
8月实习会变多吗现在还没找到实习该怎么办...回复的hr好少
码农索隆:3-4月就要开始找,基本上6月份就发offer,7月初已经开始暑期实习了。
点赞 评论 收藏
分享
仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
程序员小白条:主要没亮点,项目也是网上的,平平无奇,那只能海投了,奖项总得有一些,然后就是现在最好是前后端都会,自己能做项目并且运维的,要么找星球项目改改,要么找个开源项目改改,自己能拓展功能才是主要的,跟做效率很低很低
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务