最小排序量求调
  • 板块学术版
  • 楼主shensiyuan2011
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/12/3 11:03
  • 上次更新2023/12/3 11:05:47
查看原帖
最小排序量求调
653212
shensiyuan2011楼主2023/12/3 11:03

最小排序量

题目描述

给定数组An ,每次操作任选A[i]从序列中删除、然后插入到任意其他位置,求将数组A从小到大排序所需最少操作数量。

输入格式

第一行一个整数n,表示数组A中的数的个数 第二行为n个整数,中间用一个空格隔开

输出格式

一行,一个整数,表示将数组A从小到大排序所需最少操作数量。

样例 #1

样例输入 #1

5
2 3 4 1 4

样例输出 #1

1

求调 我的代码:

#include <bits/stdc++.h>
using namespace std;
int a[100100];
int dp[100100];

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	for (int i = 1; i <= n; i++) {
		dp[i] = 1;
		for (int j = 1; j < i; j++) {
			if (a[i] >= a[j])
				dp[i] = max(dp[j] + 1, dp[i]);
		}
	}
	cout << n - dp[n];
	return 0;
}

这题是道DP题,是最小不下降子序列问题,,哪位大佬能帮我看看我哪写错了。

2023/12/3 11:03
加载中...