题意:n个人在玩牌,每个人有m张牌,于是就有n*m张牌(每张牌都有一个值,介于1到n*m之间,不重复),然后进行m轮游戏,每轮每个人都出一张牌,牌最大的那个人就赢了,然后给出n和m,以及你的m张牌,问你最多能赢几轮?
先看例子
6 11
62 63 54 66 65 61 57 56 50 53 48
分析一下容易知道,66和65必定能赢,而61,62和63之中必定有两张能赢(能赢他们的只有64,且只有一张),于是大致想法就出来了,从n*m开始递减到1,检查每张牌,如果该牌自己是否有,如果没有,则++n1(表示能赢自己其余牌的牌数),如果有,判断n1是否为0,如果是,那么能赢的局数就加一,不然的话就--n1,最后输出ans就行
代码如下: