482. 合唱队形

Powered by:NEFU AB-IN

Link

文章目录

482. 合唱队形

题意

略 (形成山丘式的队形,最少提几个人)

思路

前后各做一次LIS(必须是dp)

fi 就表示以i为结尾的正序的LIS

gi 就表示以i为结尾的逆序的LIS
*

代码

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#undef int

#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define IOS                                                                                                            \
    ios::sync_with_stdio(false);                                                                                       \
    cin.tie(nullptr);                                                                                                  \
    cout.tie(nullptr)
#define DEBUG(X) cout << #X << ": " << X << '\n'

const int N = 1e5 + 10, INF = 0x3f3f3f3f;

int a[N], f[N], g[N];

signed main() {
    //freopen("Tests/input_1.txt", "r", stdin);
    IOS;

    int n;
    cin >> n;
    for (int i = 1; i <= n; ++ i) cin >> a[i];


    for (int i = 1; i <= n; ++ i) {
        f[i] = 1;
        for (int j = 1; j < i; ++ j) {
            if (a[j] < a[i]) f[i] = max(f[i], f[j] + 1);
        }
    }


    for (int i = n; i; -- i) {
        g[i] = 1;
        for (int j = n; j > i; -- j)
            if (a[j] < a[i]) g[i] = max(g[i], g[j] + 1);
    }

    int mx = 0;
    for (int i = 1; i <= n; ++ i) {
        mx = max(mx, f[i] + g[i] - 1);
    }

    cout << n - mx;

    return 0;
}
相关推荐
小程故事多_809 小时前
从A2C、TRPO、PPO到GRPO,强化学习策略梯度算法完整演进与大模型落地实战解析
人工智能·算法
2601_9561219711 小时前
二分算法(知识点+题目)
c++·算法
AndrewHZ13 小时前
【LLM技术全景】阶段总结:技术原理篇核心知识回顾
人工智能·深度学习·算法·语言模型·大模型·llm·芯片开发
小星星闪亮登场14 小时前
2026萌新联赛第三场-- (郑州轻工业大学)
数据结构·c++·经验分享·算法·贪心算法·排序算法·深度优先
冻柠檬飞冰走茶15 小时前
PTA基础编程题目集 7-8超速判断(C++语言实现)
开发语言·数据结构·c++·算法
玖玥拾15 小时前
LeetCode 88 合并两个有序数组
算法·leetcode
数据皮皮侠AI15 小时前
上市公司数字供应链金融指数(2010-2024)
大数据·人工智能·算法
小程故事多_8016 小时前
用GRPO算法重塑多智能体系统,从原理落地到复杂任务规划实战
人工智能·算法
Hi李耶16 小时前
【LeetCode】541.反转字符串 II
算法·leetcode·职场和发展
shylyly_16 小时前
104.二叉树的最大深度
数据结构·算法·104.二叉树的最大深度