ICPC 2018 亚洲横滨赛 C Emergency Evacuation(暴力,贪心)

Posted rui-4825

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ICPC 2018 亚洲横滨赛 C Emergency Evacuation(暴力,贪心)相关的知识,希望对你有一定的参考价值。

ICPC 2018 亚洲横滨赛 C Emergency Evacuation

题目大意

你一个车厢和一些人,这些人都坐在座位上,求这些人全部出去的时间最小值

Solution

题目咋说就咋做
直接模拟
我们考虑每个人的路线,如果这两个人在没有阻挡的情况下,到达终点的时间是一样的话,那么必定会在某一点相遇。
此时就需要有一个人要等一个时刻,如果有第三个人的话,这第三个就要等两个时刻,那么我们直接算出每个人到终点的时间,排序后依次后延即可。

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

struct node{
  int r, c;
  int d;
}pe[500005];

bool cmp(node a, node b){
    return a.d > b.d;
}

int main(){
    int r, s, p, i;
    cin >> r >> s >> p;
    for(i = 0; i < p; i++){
        cin >> pe[i].r >> pe[i].c;
        if(pe[i].c > s)
            pe[i].d = (pe[i].c - s) + (r - pe[i].r + 1);
        else
            pe[i].d = (s - pe[i].c + 1) + (r - pe[i].r + 1);
    }
    sort(pe, pe + p, cmp);
    int k = 1;
    int ans = pe[0].d;
    for(i = 1; i < p; i++){
        if(pe[i].d + k > ans)
            ans = pe[i].d + k;
        k++;
    }
    cout << ans << endl;
    return 0;
}

以上是关于ICPC 2018 亚洲横滨赛 C Emergency Evacuation(暴力,贪心)的主要内容,如果未能解决你的问题,请参考以下文章

ACM/ICPC 2018亚洲区预选赛北京赛站网络赛

ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 B Tomb Raider 二进制枚举

ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 ASaving Tang Monk II 状态搜索

2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)

2018ACM-ICPC亚洲区域赛南京站I题Magic Potion(网络流)

2014ACM/ICPC亚洲区鞍山赛区现场赛——题目重现