AT2299 [ARC068B] Card Eater 题解

题目传送门


思路

这道题我们可以开一个桶,

统计一共有多少个不同的数。

如果个数是偶数的话,

最后的答案要 \(-1\)

比如样例

5
1 2 1 3 7

不同的数有 \(4\) 个。

但是我们在操作中要多删掉一个数,

所以答案要 \(-1\)


代码如下:

#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) ;
}

完结撒花 \(\sim\sim\sim\)

posted @ 2023-07-01 11:21  liukejie  阅读(7)  评论(0编辑  收藏  举报