首页 > 代码库 > [BZOJ 1816][Cqoi2010]扑克牌(二分答案)

[BZOJ 1816][Cqoi2010]扑克牌(二分答案)

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1816

分析:

我先以为是道水题,但是要注意的是每套牌中Joker只能用1张的,所以就出现了可能目前每种牌的剩余牌数都够,但不一定不用Joker,然后就短路了……

看了hzwer的blog顿时茅塞顿开,原来是二分……

二分答案x,然后判定

判定的方法:注意每套牌顶多只有一个Joker,所以对于答案x,能用的Joker的最大数量是T=Min(x,m),然后枚举每种牌,将每种牌相对于答案x差的个数加起来,如果结果<=T则x可行,否则不可行

[BZOJ 1816][Cqoi2010]扑克牌(二分答案)