- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
昨天我参加了 Google code jam 比赛。有糖果 split 问题。 http://code.google.com/codejam/contest/dashboard?c=975485#s=p2
我设计了一种算法,该算法基本上会尝试 Patrick 的堆和 Sean 的堆的所有不同组合,检查它们是否具有相同的 Patrick 值,最后选择能够最大化 Sean 份额的组合。该算法适用于小输入文件。对于大的,我遇到了内存问题并且输出从未出现过。我相信有另一种方法可以解决这个问题,不需要考虑所有组合。谁能帮忙?
最佳答案
对于小输入,糖果的数量很少(最多 15 个)。对所有可能情况的搜索将包含 2^15 = 32768
种可能性,可以在一毫秒左右的时间内进行检查。 But with upto 1000 candies (large input), the number of possible combinations go upto 2^1000 = 10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
.现在这个数字有点太大了,即使你运行这个程序几年,你也不会得到结果。
有一些观察结果有助于为此制定一个有效的程序:
a xor a = 0
。.
c1 xor c2 xor ... xor ci-1 xor ci xor ci+1 xor ... xor cn = 0
=> c1 xor c2 xor ... xor ci-1 xor ci+1 xor ... xor cn = ci
也就是说,我们可以通过从整个集合中取出一颗糖果来将集合分成两部分。为了使左半部分的算术和最大化,我们必须取最小值的糖果。所以,较高堆糖果的算术和是所有糖果的总和 - 最低的值!
因此,我们有:
关于algorithm - 不同的组合算法(糖果 split ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5926649/
爱丽丝是一名幼儿园老师。她想给类的 children 一些糖果。所有的 child 都坐成一排,每个 child 都根据自己平时的表现打分。爱丽丝想给每个 child 至少 1 颗糖果。因为 chil
我在比赛的某个地方发现了这个问题,但还没有想出解决方案。 The boy has apples and keeps in boxes. In one box no more than N/2. How
昨天我参加了 Google code jam 比赛。有糖果 split 问题。 http://code.google.com/codejam/contest/dashboard?c=975485#s=
我正在尝试解决 hackerrank在 JavaScript 中挑战,虽然对于大多数测试实例,我的解决方案都执行得很好,但我不断地遇到其中一些的超时(Hackerrank 将其设置为 10 秒以用于
我是一名优秀的程序员,十分优秀!