codeforces B. Design Tutorial: Learn from Life

简介:
 题意:有一个电梯,每一个人都想乘电梯到达自己想要到达的楼层!
从a层到b层的时间是|a-b|, 乘客上下电梯的时间忽略不计!问最少
需要多少的时间.... 
    这是一道神题啊,自己的思路不知不觉的就按照注解的思路走了,想着
用优先队列模拟一下,可能还是没有模拟好吧,一直哇!但是同学的

优先队列模拟过了! 没想到是greedy算法简单的几行就解决了!


#include<iostream>
#include<cmath> 
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define N 2005
using namespace std;

int f[N];

int main(){
    int n, k;
    cin>>n>>k;
    for(int i=1; i<=n; ++i)
        cin>>f[i];
    sort(f+1, f+n+1, greater<int>());
    
    int ans = 0;
    
    for(int i=1; i<=n; ){//按照最高的楼层排列,将k个人装满电梯,途中让楼层低的人下去! 
        ans += (f[i] - 1)*2;//所有的来回时间就是到达楼层搞的时间的2倍 
        i += k;
    }
    cout<<ans<<endl;
    return 0;
}


目录
相关文章
Design Tutorial: Learn from Math
Design Tutorial: Learn from Math
106 0
Design Tutorial: Learn from Math
|
Java
HDU - 2018 Multi-University Training Contest 3 - 1012: Visual Cube
HDU - 2018 Multi-University Training Contest 3 - 1012: Visual Cube
130 0
HDU - 2018 Multi-University Training Contest 3 - 1012: Visual Cube
|
安全 Linux Docker
A Brief Introduction to LinuxKit
The LinuxKit makes it possible for users to utilize the container platform with secure, lean, and portable Linux subsystems.
1295 0
A Brief Introduction to LinuxKit
|
Shell PHP 开发工具
|
Shell PHP 开发工具
|
Ubuntu Linux Unix