Codeforces Round 982 (Div. 2)补题

B. Stalin Sort

链接:Stalin Sort

思路:遍历数组里每一个数,假定他是最大值,将不符合条件要删去的数累加得ans,最终比较得最小值。

代码:

#include<bits/stdc++.h>
using namespace std;
int a[3000];
int main()
{
	int t;
	cin>>t;
	int ans=0;
	while(t--){
		int n;
		cin>>n;
        int minn=INT_MAX;
		for(int i=1;i<=n;i++){
			cin>>a[i];
		}
		for(int i=1;i<=n;i++){
		    int b=a[i];//假设b是数组里最大的数
            ans=i-1;//b前面有i-1个数
		    for(int j=i+1;j<=n;j++){
		    	if(a[j]>b) ans++;//要是构成递减顺序,b后面若有大于b的数,则删除
		    	                //累加得ans
			}
			minn=min(ans,minn);//每次假设完进行比较,取最小值
		}
		cout<<minn<<endl;

	}
	return 0;
}

 

posted @ 2024-10-28 19:37  hanbaodao  阅读(7)  评论(1编辑  收藏  举报