这题没什么好说的,直接贪心就可以了
可以发现在最优方案中,没有被移动过的数字一定是连续单调增的
那么直接刷最长的连续单调增序列就好了
示例程序:
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=50005;
int n,f[maxn];
int main(){
scanf("%d",&n);
for (int i=1;i<=n;i++)
int ans=0;
for (int i=1;i<=n;i++) ans=max(ans,f[i]);
return printf("%d",n-ans),0;
}

本文介绍了一个简单的贪心算法题目,目标是找出数组中最长的连续单调递增子序列。通过分析可知,在最优解中未被移动的数字必定构成连续单调递增序列。文章提供了示例代码实现。
4655

被折叠的 条评论
为什么被折叠?



