HDU 1800

题意:士兵们要学飞行扫帚,然后士兵们各有自己的等级,等级高的可以教等级低的,反之则不行,规则是一个士兵只能教一个人,一个士兵也只能有一个人教,允许没有人教,或者不教别人的士兵存在。"师徒序列"(下面会解释)中的所有人可以在一条扫帚上。问:最少需要多少

举例:士兵等级 2 3 5 4 4 5 

解析:我们先把士兵序列排序,2 3 4 4 5 6 那么最多需要两条扫帚,2 3 4 和4 5 6 因为一个人只能教一个人,所以如果有两个相同等级的人的话,那么师徒序列就只能在这里断开了,这里,师徒序列分别是2 3 4 和 4 5 6. 所以需要两把扫帚。

          现在题目就变成了求输入中重复次数最多的数的个数(即几个师徒序列,也即需要几把扫帚)

解法是:声明一个数组degree[],然后每输入一个数,就degree[i]++,输出degree[]中最大的一个数即可。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值