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