地址:http://acm.hdu.edu.cn/showproblem.php?pid=2192
题意:n个size不同的大楼,相同size的不能放在同一MagicBuilding中。问至少要多少个MagicBuilding。
mark:其实就是求出现最多的那个数出现的次数,排序以后扫一次就好了。
代码:
# include <stdio.h> # include <stdlib.h> int a[10010] ; int cmp(const void *a, const void *b) { return *(int*)a - *(int*) b ; } int main () { int T, n, i ; int sum ,ans ; scanf ("%d", &T) ; while (T--) { scanf ("%d", &n) ; for (i = 0 ; i < n ; i++) scanf ("%d", &a[i]) ; qsort(a, n, 4, cmp) ; sum = ans = 1 ; for (i = 1 ; i < n ; i++) { if (a[i] == a[i-1]) sum++ ; else sum = 1 ; if (sum > ans) ans = sum ; } printf ("%d\n", ans) ; } return 0 ; }