90p 求助
查看原帖
90p 求助
482396
Joker_Tan楼主2024/11/5 09:46
#include <bits/stdc++.h>
using namespace std;

const int MAXN=1e5+10;

int n;
int f[MAXN]={};
bool v[MAXN]={};
bool g[MAXN]={}; 

int main() {
	freopen("duel.in","r",stdin);
	freopen("duel.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++) {
		scanf("%d",&f[i]);
		g[i]=true; v[i]=true;
	}
	sort(f+1,f+n+1);
	int pt=2;
	for(int i=1;i<=n;i++) {
		if(g[i]) {
			for(int j=pt;j<=n;j++) {
				if(v[j] && f[j]>f[i]) {
					v[j]=false;
					g[i]=false;
					pt=j;
					break;
				}
			}
		}
	} 
	int ljy=0;
	for(int i=1;i<=n;i++) {
		if(g[i]) {
			ljy++;
		}
	}
	cout<<ljy<<endl;
	return 0;
}

现在是超了两个点,求原理解答

2024/11/5 09:46
加载中...