讨论 / 我觉得这个题不是动态规划而是数学题吧?
ysq 2008-04-08 08:24:00
点我顶贴 收藏 删除
rt,但是很困惑不能AC的原因
#1 jinzemeng@2007-11-08 21:16:00
回复 删除
由于本人水平有限,只能按照题解把本题目当成DP的题目了,看到几天大家AC的很少,把题解贴上来,仅供参考,如果有哪位大牛能用数学或者其他方法AC请回复

《Ural的鹰蛋实验》算法说明

最容易想到的是二分贪心,但那是不对的。

应该用动规解:

举个例子,10层楼,2个蛋,那么就是要求a[10][2]

第一次试验有10种选择——1到10层

如果选第3层,最坏情况下当然E!=3,如果E<3,蛋就碎了(关键!),那么还需要a[2][1]次

如果E>3,那么还需要a[7][2]次,由于考虑最坏情况,取两个的最大值,再加1

如果n层楼,m个蛋,其实就是

for(i=1;i<=n;i++) a[n][m]=min{1+max{a[i-1][m-1],a[n-i][m]}}

当然还要注意剪枝。

1000层楼,最多需要10个蛋

#2 ysq@2007-11-09 02:51:00
回复 删除
多谢楼上^_^

我的这道题的思路大致如下,但是不知道为什么不对,帮忙纠错,谢谢阿。

首先,当蛋的个数不为一的时候,我们可以很容易得想到一件事,那就是第一个蛋应该在最中间的那层楼扔。这种想法和我们作二分法排序的时候所用到的方法相近。

然后,当蛋的个数=1时,没办法,为了节约,我们只好从下往上一个一个试

由此我们可以导一定的规律。。。

不知道对不对

#3 lonelycorn@2008-04-08 08:24:00
回复 删除
这个题……IOI2004国家集训队上zcg讲的,用了5种方法。
查看更多回复
提交回复