首页 > 其他 > 详细

[CF767B] The Queue - 贪心

时间:2021-02-25 16:45:11      阅读:33      评论:0      收藏:0      [点我收藏+]

[CF767B] The Queue - 贪心

Description

接待员在午夜Ts分钟时开始工作,并在午夜Tf分钟后关闭。对于每个来访者,Vasya都知道他何时会来到护照办公室。每个访客排队等候,直到被服务才离开。如果Vasya和其他几个来访者同时到达护照办公室,他会向他们让步,并作为最后一名之后站在队伍中。Vasya想找到一个适合的时间,使得接待员会服务他,并且他会花费最少的时间在队伍中。

Solution

除非踩着最后一个人走了的时候进去(或者最开始),否则踩在一个人到的前一秒去一定不会更坏

枚举每个人,用他到达时刻的前一秒来试一试

我们需要维护之前的那些人完成的最晚时间,与新到达的这个人的时间 -1 取最小值,作为一个备选的时间

如果这个备选时间进去做完还没下班,我们就找到了一种方案,考虑更新答案

#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
    int t_begin, t_end, t_serv, n;
    cin >> t_begin >> t_end >> t_serv >> n;
    int t_last = t_begin;
    int ans = 1e18;
    int ansval = 1e18;
    for (int i = 1; i <= n; i++)
    {
        int t_visitor;
        cin >> t_visitor;
        if (t_visitor + t_serv > t_end)
            break;
        if (t_last + t_serv <= t_end && t_last - t_visitor + 1 <= ansval)
        {
            ansval = t_last - t_visitor + 1;
            ans = min(t_last, t_visitor - 1);
        }
        t_last = max(t_last, t_visitor) + t_serv;
    }
    if (t_last + t_serv <= t_end)
        ans = t_last;
    cout << ans;
}

[CF767B] The Queue - 贪心

原文:https://www.cnblogs.com/mollnn/p/14447476.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!