172C

模拟

#include<iostream>
#include<algorithm>
#include<vector>
#include<cstdio>
#include<Set>
using namespace std;
struct pas
{
    int x,t,num,time;
}p[100010];
set<int>s;
vector<int>stu[100010];
int n,m,time;
int pt[10010];
inline int min(int x,int y)
{
    return x<y?x:y;
}
inline int max(int x,int y)
{
    return x>y?x:y;
}
inline bool cp(pas x,pas y)
{
    return x.t<y.t;
}
inline bool cp1(pas x,pas y)
{
    return x.num<y.num;
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d",&p[i].t,&p[i].x);
        p[i].num=i;
    }
    sort(p+1,p+n+1,cp);
    int pre=1;
    while(pre<=n)
    {
        s.clear();
        int dis=0;
        for(int i=pre;i<min(pre+m,n+1);i++)
        {
            s.insert(p[i].x);
            stu[p[i].x].push_back(i);
        }
        if(time<p[min(pre+m-1,n)].t)
            time+=(p[min(pre+m-1,n)].t-time);
        int last=0;
        for(set<int>::iterator it=s.begin();it!=s.end();it++)
        {
            time+=(*it-last);
            for(int i=0;i<stu[*it].size();i++)
                p[stu[*it][i]].time=time;
            time+=(1+(stu[*it].size()/2));
            stu[*it].clear();
            last=*it;
        }
        time+=*s.rbegin();
        pre=min(pre+m,n+1);
    }
    sort(p+1,p+n+1,cp1);
    for(int i=1;i<=n;i++)
        printf("%d ",p[i].time);
    return 0;
}
时间: 2025-01-12 04:12:29

172C的相关文章

Android开发代码的效率问题

实际上,不仅仅是android手机开发,所有的软件开发都要注意代码效率的问题!一般来说,实现相同的功能尽量较少地使用内存,最少的指令是一个优秀开发者需要时刻注意的!这里从两点来讨论这个问题: (一)数据类型选择 首先来讨论基本数据类型的选择.对于一个32位的ARM,我们来看看两个16位的数相加的汇编代码: 000016d0 <add_16_16> 16d0: e0810000      add  r0, r1, r0 16d4: e6bf0070        sxth r0,r0 16d8:

XHTML?1.0:TheExtensibleHyperTextMarkupLanguageqpng

2017 已经悄悄的走了,2018 也已经匆匆的来了,我们在总结过去的同时,也要展望一下未来.俗话说一年之计在于春,虽说距立春还有一个多月,我觉得我们如果想从小白升级到大牛,应该早做计划,规划一下今年要学哪些新的技能呢?我们来一一探讨一下. SpringBoot Spring Boot:是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring B