Flying to the Mars


学习魔法扫帚吧 ! 假定每个士兵都有一个表示他们等级的数字. 更高等级的士兵能够教授低等级的士兵. 每名士兵最多有一位老师(也可以没有). 同样的,每名士兵最多有一个学生 (也可以没有). 老师可以用同一把魔法扫帚教学 . 当然 ,  每名士兵都必须在魔法扫帚上实践过 ! 你需要求出魔法扫把需要的最少数量 .(即求出具有某一相同等级士兵的最大数目) 
For example :
There are 5 soldiers (A B C D E)with level numbers : 2 4 5 6 4;
One method :
C could teach B; B could teach A; So , A B C are eligible to study on the same broomstick.
D could teach E;So D E are eligible to study on the same broomstick;
Using this method , we need 2 broomsticks.
Another method:
D could teach A; So A D are eligible to study on the same broomstick.
C could teach B; So B C are eligible to study on the same broomstick.
E with no teacher or student are eligible to study on one broomstick.
Using the method ,we need 3 broomsticks.
……

After checking up all possible method, we found that 2 is the minimum number of broomsticks needed.
Input Input file contains multiple test cases.
In a test case,the first line contains a single positive number N indicating the number of soldiers.(0<=N<=3000)
Next N lines :There is only one nonnegative integer on each line , indicating the level number for each soldier.( less than 30 digits)(纯粹吓唬人,估计10位都不到吧);
Output For each case, output the minimum number of broomsticks on a single line. Sample Input
4
10
20
30
04
5
2
3
4
3
4
Sample Output
1
2

#include<cstdio>
#include<map> 
using namespace std;
int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		int num,Max=0;
		map<int,int> mp;
		while(n--)
		{
			scanf("%d",&num);
			mp[num]++;
			if(mp[num]>Max)
				Max=mp[num];
		}
		printf("%d\n",Max);
	}
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值