POJ 1744 Elevator Stopping Plan
来源:互联网 发布:mac杀毒软件 编辑:程序博客网 时间:2024/05/24 06:32
题意:N个人要到f1,f2...fn层楼,已知电梯每升一层要4秒,到某一层要停留10秒,人爬楼梯上一层要20秒。求出所有人都到达自己想去的楼层的最短时间。
分析:二分+贪心。对时间二分,贪心的判断在这固定的时间内是否能让所有人到达自己想去的楼层。贪心的判断就是让电梯尽可能的往上跑,以给要到较高楼层的人节省中间停留时间,而让时间比较充裕的到较低层的人尽可能多走楼梯,从而让总体时间最小。
Code:
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int fl[30010];int n;bool OK(int time){ int pos=1,nt=0,np; bool mark=false; for(int i=0;i<n;i++){ if((fl[i]-pos)*20+nt>time){ if(mark) nt+=10; if((fl[i]-pos)*4+nt>time) return false; for(np=fl[i];(np-pos)*4+(np-fl[i])*20+nt<=time;np++); np--; nt+=(np-pos)*4; pos=np; mark=true; } } return true;}int main(){ int st,ed; while(scanf("%d",&n),n){ for(int i=0;i<n;i++){ scanf("%d",&fl[i]); } st=(fl[0]-1)*4-1; ed=(fl[n-1]-1)*20; while(ed-st>1){ int m=(st+ed)>>1; if(OK(m)) ed=m; else st=m; } printf("%d\n",ed); } return 0;}
- poj 1744 Elevator Stopping Plan
- POJ 1744 Elevator Stopping Plan
- pku1744 Elevator Stopping Plan
- [openjudge] Elevator Stopping Plan
- POJ 1744 Elevator Stopping Plan 以及对二分搜索的思考
- pku 1771Elevator Stopping Plan
- UVALive - 2949 Elevator Stopping Plan
- UVALive - 2949 Elevator Stopping Plan
- [openjudge] 746:Elevator Stopping Plan
- UVALive 2949 Elevator Stopping Plan(二分 + 贪心)
- UVALIVE 2949 Elevator Stopping Plan(二分 + 贪心)
- 贪心算法之Elevator Stopping Plan
- 贪心+二分 openjudge746 Elevator Stopping Plan
- uvalive 2949 - Elevator Stopping Plan(贪心+二分)
- 2003 ACM/ICPC 亚洲赛区题目解答(Problem B-Elevator Stopping Plan)
- poj plan
- POJ 2392 Space Elevator
- poj Space Elevator
- 有关meanshift跟踪的理解(在opencv中实现)
- vim的文本替换
- 做电商,需要具备哪些运营条件,以及各项注意
- 大巧不工:web前端开发修炼总结
- InCallScreen是什么
- POJ 1744 Elevator Stopping Plan
- 64位Windows系统如何配置32位ODBC
- 显示桌面图标不见了,怎么办 .?
- 广州传智播客Net06期训练营黄埔军校旧址观光
- Memcached深度分析
- ShareSDK超级强大的社会化分享
- Basis T_code
- 磁盘存储原理
- nyist-23