求复杂度
查看原帖
求复杂度
1025087
You_Are_The_T0楼主2024/10/27 20:23

考场的神奇思路,打出来小样例过了,大样例半天没出结果,求大佬帮算复杂度

#include<bits/stdc++.h>
using namespace std;
int n;
int inx,ans;
struct s{
	int num,q;
}a[100001];
int xb[100001],flag[100001];
int r;
bool tst(s a,s b){
	return a.q<b.q;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>r;
		if(flag[r]==0){
			xb[r]=++inx;
			flag[r]++;
			a[xb[r]].q=r;
		}
		a[xb[r]].num++;
		
	}
	sort(a+1,a+1+inx,tst);
	for(int i=1;i<n;i++){
		if(a[i+1].num>=a[i].num){
			ans+=a[i].num;
		}else{
			ans+=a[i+1].num;
			a[i+1].num+=(a[i].num-a[i+1].num);
		}
	}
	cout<<n-ans;
	return 0;
}

2024/10/27 20:23
加载中...