我正在通过Google Foobar工作,我对#34;释放Bunny Prisoners"感到非常困惑。我不是在寻找代码,但我可以使用任何完成它的人的一些见解。首先,问题是:
释放兔子囚犯
你需要在指挥官Lambda的空间之前释放兔子囚犯 站爆炸!不幸的是,指挥官非常小心 她最高价值的囚犯 - 他们都被分开关押, 最大安全单元。通过将钥匙放入每个单元来打开单元 控制台,然后同时按下每个控制台上的打开按钮。 按下打开按钮时,每个键都会打开相应的锁定 在细胞上。因此,所有控制台中的键的组合必须是 所有的钥匙。该方案可能需要一个密钥的多个副本 给不同的奴才。
控制台相距足够远,需要一个单独的小兵 每一个。幸运的是,你已经释放了一些兔子来帮助你 - 甚至更好的是,当你担任指挥官Lambda的助手时,你能够窃取钥匙。问题是,你不是 知道在哪些控制台使用哪些键。控制台已编程 知道每个小兵有哪些钥匙,以防止有人 窃取所有密钥并盲目使用它们。有迹象表明 控制台说有多少爪牙有一些钥匙 控制台。你怀疑Lambda指挥官有系统的方法 决定给每个小兵哪些钥匙,以便他们可以使用 控制台。
你需要弄清楚Commander Lambda曾经的计划 分发钥匙。你知道有多少仆从有钥匙,有多少 控制台是由每个细胞组成的。你知道Command Lambda不会 发出超过必要的密钥(超出密钥分配 方案要求),你需要尽可能多的兔子钥匙 是打开牢房的控制台。
考虑到可用的兔子数量和所需的锁数 打开一个单元格,写一个函数答案(num_buns,num_required) 返回如何分配密钥的规范,以便任何 num_required bunnies可以打开锁,但没有组(num_required - 1)兔子可以。
每个锁从0开始编号。键的编号相同 当他们打开锁(因此对于重复的密钥,数字将重复, 因为它打开了相同的锁)。对于给定的兔子,他们得到的钥匙是 表示为键的数字的排序列表。涵盖所有 对于兔子来说,最终答案由一个排序列表表示 每个兔子的钥匙列表。按字典顺序查找 至少这样的密钥分配 - 也就是说,第一个兔子应该有 键顺序从0开始。
num_buns将始终在1到9之间,num_required将始终为 在0到9之间(包括两者)。例如,如果你有3 兔子和只需要其中一个打开牢房,你会给 每个兔子都有相同的钥匙,这样他们中的任何一个都能够 打开它,如:[[0],[0],[0],]如果你有2个兔子和 要求他们两个打开牢房,他们会收到不同的 键(否则它们实际上都不是必需的)和你的 答案如下:[[0],[1],]最后,如果你有3 兔子,并要求其中2个打开牢房,然后3个中的任何2个 兔子应该拥有打开牢房所需的所有钥匙,但没有 单身兔子就能做到。因此,答案是:[
[0,1],[0,2],[1,2],]语言
要提供Python解决方案,请编辑solution.py以提供Java 解决方案,编辑solution.java
测试用例
输入: (int)num_buns = 2 (int)num_required = 1输出: (int)[[0],[0]]
输入: (int)num_buns = 5 (int)num_required = 3输出: (int)[[0,1,2,3,4,5],[0,1,2,6,7,8],[0,3,4,6,7,9],[1,3] ,5,6,8,9],[2,4,5,7,8,9]]
输入: (int)num_buns = 4 (int)num_required = 4输出: (int)[[0],[1],[2],[3]]
我无法弄明白为什么answer(5, 3) = [[0, 1, 2, 3, 4, 5], [0, 1, 2, 6, 7, 8], [0, 3, 4, 6, 7, 9], [1, 3, 5, 6, 8, 9], [2, 4, 5, 7, 8, 9]]
。在我看来,[[0], [0, 1, 2], [0, 1, 2], [1], [2]]
完全满足描述中规定的要求。我不知道为什么你的密钥值大于num_required-1。
我想到的一种可能性是,有一些不成文的规则表明所有的奴才/兔子都需要拥有相同数量的密钥,而且你只能拥有每个密钥的num_required。但是,如果是这种情况,那么[[0, 1, 2], [0, 1, 2], [0, 3, 4], [1, 3, 4], [2, 3, 4]]
就可以了。
接下来我认为可能需要能够一次性使用所有num_required键的规则扩展到0,1和2之外,无论有多少个控制台。也就是说,您应该能够[6, 7, 8]
以及[0, 1, 2]
。但是,这个要求会被打破,因为第一个兔子没有任何这些数字。
我被困住了。任何提示都将不胜感激!
答案 0 :(得分:1)
我认为你错过了它所说的部分
but no group of (num_required - 1) bunnies can.
我可以进一步解释我的解决方案,但我会毁了这个乐趣。 (我是那个回购的所有者)。 让我们试试你的答案。
[[0], [0, 1, 2], [0, 1, 2], [1], [2]]
你的游戏机是3.兔子2可以自己打开它,兔子3也可以自己打开它 - >它不符合规则。