这道题是春节前在家做的,当时题解写了一半,今天继续写的时候,发现自己都看不懂自己的代码了,又想了半天~
-------------------------------------------------------------------------------------------------------------------------------------
家里面真不是写代码的地,今天做这道题,中间出去n多次,到晚上9点才做出来。
罐子和硬币
题目详情:
有n个罐子,有k个硬币,每个罐子可以容纳任意数量的硬币。罐子是不透明的,起初你可以随机把这k个硬币任意放在罐子里。然后罐子被打乱顺序,你从外表无法区别罐子。最后罐子被编上号1-n。你有p次机会,每次你可以选择某个罐子,如果该罐子里有硬币,则你可以得到1个(你不可以知道该罐子里有多少硬币),如果该罐子是空的,你得不到任何硬币。你最终要得到至少c枚硬币,我们的问题是给定n,k,c,求出最少的p,存在一种你最初放硬币的方式,无论罐子如何被打乱顺序,你都能p次机会内获得至少c个硬币。
输入n,k,c (0 < n <=1000000, 0 < c <= k <=1000000)。
输出,最小的p值。
例如n = 3, k = 6, c = 4。 你可以把每个罐子放入两个硬币,这样得到4次机会可以得到4个硬币,输出4。