zoukankan      html  css  js  c++  java
  • CodeForces 644B【模拟】

    题意:
    查询数 和 最大的队列容量+1;
    按时间顺序
    ti代表,第i个出线的时间;
    di代表,第i个需要处理的时间;
    对于第i个输出他所需要的时间完成,或者拒绝进入输出-1;
    思路:
    真是MDZZ了,模拟。
    主要就是开个队列存了一下每个任务结束时间,然后对于每个任务把队列里小于该任务开始时间pop掉,队列里的个数就可以代表当前处理个数了

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int N=2e5+10;
    typedef pair<int,int>P;
    queue<int>q;
    LL ans[N];
    int main()
    {
        int n,b;
        LL x,y,now,num;
        scanf("%d%d",&n,&b);
        b++;
        scanf("%lld%lld",&x,&y);
        ans[1]=x+y;
        now=x+y;
        q.push(now);
        for(int i=2;i<=n;i++)
        {
            scanf("%d%d",&x,&y);
            while(!q.empty())
            {
                int u=q.front();
                if(u<=x)
                    q.pop();
                else
                    break;
            }
            if(x>=now)
            {
                now=x+y;
                q.push(now);
                ans[i]=x+y;
            }
            else
            {
                if(q.size()+1<=b)
                {
                    ans[i]=now+y;
                    now=now+y;
                    q.push(now);
                }
                else
                    ans[i]=-1;
            }
        }
        for(int i=1;i<=n;i++)
            printf("%lld ",ans[i]);
        return 0;
    }
  • 相关阅读:
    【hibernate】常用注解
    【Maven】常用命令
    【Eclipse】安装配置
    【Eclipse】Spring Tool Suite插件
    【Git】远程分支
    【Git】本地分支
    日地拉格朗日L2点轨道的卫星运行
    SDK Manager的使用
    Appium Python API
    输入的中文,屏蔽软键盘
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934763.html
Copyright © 2011-2022 走看看