hd 2192 MagicBuilding——不要被样例吓到

来源:互联网 发布:聚合数据平台 编辑:程序博客网 时间:2024/06/09 18:12

戳我跳跃世界线 (´Д`)

分析题意

这道题的意思是说 给你一个数n 接着输入n个数 让你把这些数分成尽可能少的组,分组的唯一条件就是“每组中不能有相同的数存在”

然后是做法

其实这道题刚看的时候我心里已经果断pass了···因为觉得会很难,题都没好好读(下次肯定长记性,不能直接被吓到),但是其实很简单的题目,一次ac(´Д`)
根据上面的分析,要求相同的数字不能在同一组,既然这样只要知道一个数字最多重复的次数也就是可以分成最少的组数。数据量不大,但是因为一直掌握不好数据的范围,所以索性就用long写了(自我检讨ing)

上代码

#include <iostream>#include <algorithm>#include <stdio.h>using namespace std;int main(){long times;scanf("%ld",&times);while(times--){ long n; scanf("%ld",&n); long arr[n+5]; long i; for (i=0;i<n;i++)        scanf("%ld",&arr[i]); sort(arr,arr+n); long res=1; long mid=1; for (i=1;i<n;i++) {     if (arr[i]==arr[i-1])        mid++;     else        mid=1;     res=max(mid,res);  //   printf("!!!!%ld\n",res); } printf("%ld\n",res);}return 0;}

0 0