首页 > 代码库 > codeforces B. Design Tutorial: Learn from Life
codeforces B. Design Tutorial: Learn from Life
题意:有一个电梯,每一个人都想乘电梯到达自己想要到达的楼层!
从a层到b层的时间是|a-b|, 乘客上下电梯的时间忽略不计!问最少
需要多少的时间....
这是一道神题啊,自己的思路不知不觉的就按照注解的思路走了,想着
用优先队列模拟一下,可能还是没有模拟好吧,一直哇!但是同学的
优先队列模拟过了! 没想到是greedy算法简单的几行就解决了!
1 #include<iostream> 2 #include<cmath> 3 #include<cstdio> 4 #include<algorithm> 5 #include<cmath> 6 #include<cstring> 7 #define N 2005 8 using namespace std; 9 10 int f[N];11 12 int main(){13 int n, k;14 cin>>n>>k;15 for(int i=1; i<=n; ++i)16 cin>>f[i];17 sort(f+1, f+n+1, greater<int>());18 19 int ans = 0;20 21 for(int i=1; i<=n; ){//按照最高的楼层排列,将k个人装满电梯,途中让楼层低的人下去! 22 ans += (f[i] - 1)*2;//所有的来回时间就是到达楼层搞的时间的2倍 23 i += k;24 }25 cout<<ans<<endl;26 return 0;27 }
codeforces B. Design Tutorial: Learn from Life
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。