每日一题<>P1091 合唱队形>

简介: 每日刷题打卡

image.png

题目可以转换成要求挑选从低到高再到低最长的一列人,面对这种问题我们可以求出每个数两边开始最大的递增数量,最后将两个数列相加减一求最大值,就是最长的队伍长度,出列的人只需总人数减去队伍长度便可。

#include<iostream>
using namespace std;
int arr[200], l[200], r[200];
int main()
{
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) //初始化,最少也有自己一个构成序列
  {
    cin >> arr[i];
    l[i] = 1;
    r[i] = 1;
  }
  for (int i = 2; i <= n; i++)//从左到右
  {
    for (int j = 1; j < i; j++)
    {
      if (arr[i] > arr[j] && l[i] <= l[j]) //按要求更新表(后大于前由于初始化是一样的所以要<+)
      {
        l[i] = l[j] + 1;
      }
    }
  }
  for (int i = n - 1; i >= 1; i--)//从右往左
  {
    for (int j = i + 1; j <= n; j++)
    {
      if (arr[i] > arr[j] && r[i] <= r[j])
      {
        r[i] = r[j] + 1;
      }
    }
  }
  int total = 0;
  int max = 0;
  for (int i = 1; i <= n; i++)
  {
    total = l[i] + r[i] - 1;  //从左往右,从右往左,自身被数了两次,所以要减一
    if (total > max)
    {
      max = total;
    }
  }
  cout << n - max;
  return 0;
}

image.gif

目录
相关文章
|
1月前
|
数据可视化 图形学 Python
在圆的外面画一个正方形:Python实现与技术解析
本文介绍了如何使用Python的`matplotlib`库绘制一个圆,并在其外部绘制一个正方形。通过计算正方形的边长和顶点坐标,实现了圆和正方形的精确对齐。代码示例详细展示了绘制过程,适合初学者学习和实践。
42 9
|
6月前
|
C语言
【C语言刷题每日一题#牛客网BC69】——空心正方形图案
【C语言刷题每日一题#牛客网BC69】——空心正方形图案
|
7月前
蓝桥杯真题代码记录(纸张尺寸
蓝桥杯真题代码记录(纸张尺寸
43 0
|
算法
算法创作|纸牌三角形
算法创作|纸牌三角形
70 0
洛谷P1162 填涂颜色——广搜
洛谷P1162 填涂颜色——广搜
79 0
【寒假每日一题】AcWing 4652. 纸张尺寸
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
88 0
|
测试技术
每日一题——旋转函数
每日一题——旋转函数
111 0
每日一题——旋转函数
|
程序员
为什么程序员用笛卡尔心形曲线告白的人,都还是单身?
为什么程序员用笛卡尔心形曲线告白的人,都还是单身?
248 0
为什么程序员用笛卡尔心形曲线告白的人,都还是单身?
|
C语言
国王的许诺 相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第1个格子中
国王的许诺 相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第1个格子中
406 0