hdu 4907 Task schedule

来源:互联网 发布:网络钟点工是真的吗 编辑:程序博客网 时间:2024/05/16 02:10

http://acm.hdu.edu.cn/showproblem.php?pid=4907




给出一串数,表示在某个时间有一个任务,之后再给出m次询问,每次询问给出一个时间,问在这个时间如果多出来一个额外的任务,且只能在机器空闲的时间做,最早会在什么时间做,思路就是,如果某个时间点有任务,就往后找到第一个没任务的时间点,如果没有任务,则答案就是这个时间。




#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;bool nu[222222];int mi[222222];int main(){int t;cin>>t;while(t--){memset(nu,0,sizeof(nu));        int n,m;        scanf("%d%d",&n,&m);        int i;        int ma=-1;        int ti;       for(i=1;i<=n;i++)       {       scanf("%d",&ti);       nu[ti]=1;       ma=max(ma,ti);   }   mi[ma]=ma+1;   for(i=ma-1;i>=1;i--)   {     if(nu[i])     {     if(nu[i+1]==0)     mi[i]=i+1;     else mi[i]=mi[i+1];  }   }   int q;   while(m--)   {   scanf("%d",&q);   if(nu[q])   printf("%d\n",mi[q]);   else printf("%d\n",q);   }}return 0;}


原创粉丝点击