pku1744 Elevator Stopping Plan

来源:互联网 发布:算法公开课 编辑:程序博客网 时间:2024/06/05 06:50

题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1744

题意简述:n个人上不同的楼层,可以坐电梯,也可以走楼梯,其时间的花费题目已给的很明白了。求最后所有人完成上楼的后所花费时间的最小值。

解题思路: 对于每个给定的时间t,我们可以使用贪心法确定是否可以在时间t内让所有人都到达目的层。显然,每一次电梯都尽量往上开。 比如说现在第i层有人要下,电梯应该在哪一层停靠呢?假设电梯已经停靠了n次,那么我们让电梯在第j=[(t-10*n+20*i+4)/24]层停靠即可。注意此时若j<i,那么在t时间内不可能让所有人都到达所在层。对t枚举时可以采用二分法,加快速度。

v注意:1。可以直接走楼梯。     
v
还没想通j和i为什么能这样迭代,希望哪位路过的大牛能帮忙指出,谢谢了。
2.电梯在第j层停靠以后,不能直接继续考虑第2*j-i+1层,而是考虑第(t-10*n+16*j+4)/20+1层。
代码:
原创粉丝点击