轻松搞定民间数据
查看原帖
轻松搞定民间数据
783336
Earth_Sky楼主2024/10/29 21:14

先给r排一遍序,然后暴力枚举每个rir_i是否能被更高r值的怪兽受伤并且那个怪兽没有攻击过,如果可以,那么攻击过的怪兽贴上标签,退出的怪兽r值赋值为INF,不再攻击,怪兽数量-1,如果r值最大的怪兽也攻击过了,说明没法再进行攻击,游戏结束。
r贴标签用一个bool数组存下,然后稍微优化一下整个程序即可AC民间数据

AC代码如下

#include<bits/stdc++.h>
using namespace std;
const int MAX=1e5+5,INF=2e9+7;
int n,ans,j=2,a[MAX];
bool b[MAX];
int main(){
	ios::sync_with_stdio(NULL);
	cin.tie(0);cout.tie(0);
	cin>>n;ans=n;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+n+1);
	for(int i=1;i<=n;i++){
		for(;j<=n;j++){
			if(a[i]<a[j]&&!b[j]){
				ans--;
				b[j]=1;
				a[i]=INF;
				break;
			}
		}
		if(j>n) break;
	}
	cout<<ans;

	return 0;
}
2024/10/29 21:14
加载中...