[CSP-S 2024] 决斗

题目描述

今天是小 Q 的生日,他得到了 n 张卡牌作为礼物。这些卡牌属于火爆的“决斗怪兽”,其中,第 i 张卡代表一只攻击力为 ri​,防御力也为 ri​ 的怪兽。

一场游戏分为若干回合。每回合,小 Q 会选择某只怪兽 i 以及另一只怪兽 j(i=j),并让怪兽 i 向怪兽 j 发起攻击。此时,若怪兽 i 的攻击力小于等于怪兽 j 的防御力,则无事发生;否则,怪兽 j 的防御被打破,怪兽 j 退出游戏不再参与到剩下的游戏中。一只怪兽在整场游戏中至多只能发起一次攻击。当未退出游戏的怪兽都已发起过攻击时,游戏结束。

小 Q 希望决定一组攻击顺序,使得在游戏结束时,未退出游戏的怪兽数量尽可能少。

输入格式

输入的第一行包含一个正整数 n,表示卡牌的个数。

输入的第二行包含 n 个正整数,其中第 i 个正整数表示第 i 个怪兽的攻击力及防御力 ri​。

输出格式

输出一行包含一个整数表示游戏结束时未退出游戏的怪兽数量的最小值。

输入输出样例

输入样例1

5
1 2 3 1 2

输出样例1

2

输入样例2

10
136 136 136 2417 136 136 2417 136 136 136

输出样例2

8

说明/提示

【样例 1 解释】

其中一种最优方案为:第一回合让第 2 只怪兽向第 1 只怪兽发起攻击,第二回合让第 5 只怪兽向第 4 只怪兽发起攻击,第三回合让第 3 只怪兽向第 5 只怪兽发起攻击。此时没有退出游戏的怪兽都进行过攻击,游戏结束。可以证明没有更优的攻击顺序。

【样例 3】

见选手目录下的 duel/duel3.in 与 duel/duel3.ans。

该样例满足 ∀1≤i≤n,ri​≤2。

【样例 4】

见选手目录下的 duel/duel4.in 与 duel/duel4.ans。

【数据范围】

对于所有测试数据,保证:1≤n≤105,1≤ri​≤105。

测试点nri​特殊性质
1∼4≤10≤105无特殊性质
5∼10≤105≤2无特殊性质
11∼15≤30≤105特殊性质 A
16∼20≤105≤105无特殊性质

特殊性质 A:保证每个 ri​ 在可能的值域中独立均匀随机生成。

附件下载

duel.zip73.28KB

代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+6; 
int n,x,mp[N],ans;
int main(){
	scanf("%d",&n);
	while(n--){
		scanf("%d",&x);
		ans=max(ans,++mp[x]);
	}
	printf("%d\n",ans);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值