AT2299 [ARC068B] Card Eater 题解
题目传送门
思路
这道题我们可以开一个桶,
统计一共有多少个不同的数。
如果个数是偶数的话,
最后的答案要
比如样例
5
1 2 1 3 7
不同的数有
但是我们在操作中要多删掉一个数,
所以答案要
代码如下:
#include <stdio.h>
const int N = 1e5 + 10;
int n, t;
int sum;
int a[N];
main () {
scanf ("%d", &n) ;
for (int i = 1; i <= n; i ++) {
scanf ("%d", &t) ;
++ a[t];
}
for (int i = 1; i <= N - 1; ++ i)
if (a[i] != 0)
sum ++;
printf ("%d", (sum & 1) ? sum : sum - 1) ;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步