输出次数HDU2192:MagicBuilding
新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正
Problem Description
As the increase of population, the living space for people is becoming smaller and smaller. In MagicStar the problem is much worse. Dr. Mathematica is trying to save land by clustering buildings and then we call the set of buildings MagicBuilding. Now we can treat the buildings as a square of size d, and the height doesn't matter. Buildings of d1,d2,d3....dn can be clustered into one MagicBuilding if they satisfy di != dj(i != j).
Given a series of buildings size , you need to calculate the minimal numbers of MagicBuildings that can be made. Note that one building can also be considered as a MagicBuilding.
Suppose there are five buildings : 1, 2, 2, 3, 3. We make three MagicBuildings (1,3), (2,3), (2) .And we can also make two MagicBuilding :(1,2,3), (2,3). There is at least two MagicBuildings obviously.
Given a series of buildings size , you need to calculate the minimal numbers of MagicBuildings that can be made. Note that one building can also be considered as a MagicBuilding.
Suppose there are five buildings : 1, 2, 2, 3, 3. We make three MagicBuildings (1,3), (2,3), (2) .And we can also make two MagicBuilding :(1,2,3), (2,3). There is at least two MagicBuildings obviously.
Input
The first line of the input is a single number t, indicating the number of test cases.
Each test case starts by n (1≤n≤10^4) in a line indicating the number of buildings. Next n positive numbers (less than 2^31) will be the size of the buildings.
Each test case starts by n (1≤n≤10^4) in a line indicating the number of buildings. Next n positive numbers (less than 2^31) will be the size of the buildings.
Output
For each test case , output a number perline, meaning the minimal number of the MagicBuilding that can be made.
Sample Input
2
1
2
5
1 2 2 3 3
Sample Output
1
2
直接输出出现最多的次数便可
#include <stdio.h> #include <algorithm> using namespace std; int a[1000000]; int main() { int n; scanf("%d",&n); while(n--) { int m,i; scanf("%d",&m); for(i = 0;i<m;i++) scanf("%d",&a[i]); sort(a,a+m); int l = 1,tem = a[0],max = 1; for(i = 1;i<m;i++) { if(a[i] == tem) { l++; } else { tem = a[i]; l = 1; } if(l > max) max = l; } printf("%d\n",max); } return 0; }
文章结束给大家分享下程序员的一些笑话语录:
不会,Intel会维持高利润,也会维持竞争局面,国外的竞争不是打死对方的那种。你看日本有尼康,佳能,索尼,都做相机,大家都过得很滋润。别看一堆厂,其实真正控制的是后面的那几个财团——有些竞争对手,后面其实是一家人。
--------------------------------- 原创文章 By 输出和次数 ---------------------------------