• Task schedule


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

    题意:中文题。

    题解:这一道水题,自己调了很久,并且没有注意到序列可能是乱序的,wa了好几次。我的做法就是,把间距大于=2的数的下标放进set,然后查询的时候,lower_bond一下,找到开始的下标,然后在set中找到第一个间距的下标,即可,注意要处理好边界问题。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<set>
     6 using namespace std;
     7 const int N=2e5+10;
     8 int a[N],n,m,t;
     9 int main(){
    10      int cas;
    11      scanf("%d",&cas);
    12      while(cas--){
    13          scanf("%d%d",&n,&m);
    14          memset(a,0,sizeof(a));
    15          set<int>Q;
    16          for(int i=1;i<=n;i++){
    17             scanf("%d",&a[i]);
    18          }
    19             sort(a+1,a+n+1);
    20          for(int i=1;i<=n;i++){
    21             if(i>1)
    22             if(a[i]-a[i-1]>=2)
    23              Q.insert(i-1);
    24          }
    25          for(int i=1;i<=m;i++){
    26             scanf("%d",&t);
    27             if(t>a[n]+1)printf("%d
    ",t);
    28             else if(t<a[1])printf("%d
    ",t);
    29             else{
    30             int temp=lower_bound(a+1,a+n+1,t)-a;
    31              if(a[temp]>t&&temp>1)temp--;
    32             set<int>::iterator it=Q.lower_bound(temp);
    33             if(it==Q.end())
    34                 printf("%d
    ",a[n]+1);
    35             else{
    36                 printf("%d
    ",max(a[(*it)]+1,t));
    37             }
    38           }
    39          }
    40      }
    41 }
    View Code
  • 相关阅读:
    .Net环境下的缓存技术介绍
    JavaScript 全局对象
    JavaScript escape() 函数
    实现DIV拖动
    巧用Ajax的beforeSend 提高用户体验
    js中ie8下不识别indexOf的解决办法
    页面弹窗效果HTML
    让html页面中的文字不可选中
    MVC路由规则
    C# Math.Round
  • 原文地址:https://www.cnblogs.com/chujian123/p/3889425.html
Copyright © 2020-2023  润新知