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

Task schedule

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 692    Accepted Submission(s): 334

Problem Description
有一台机器,而且给你这台机器的工作表,工作表上有n个任务,机器在ti时间运行第i个任务,1秒就可以完毕1个任务。

有m个询问,每一个询问有一个数字q,表示假设在q时间有一个工作表之外的任务请求,请计算何时这个任务才干被运行。

机器总是依照工作表运行,当机器空暇时马上运行工作表之外的任务请求。
Input
输入的第一行包括一个整数T, 表示一共同拥有T组測试数据。



对于每组測试数据:

第一行是两个数字n, m,表示工作表里面有n个任务, 有m个询问;

第二行是n个不同的数字t1, t2, t3....tn,表示机器在ti时间运行第i个任务。

接下来m行,每一行有一个数字q,表示在q时间有一个工作表之外的任务请求。



特别提醒:m个询问之间是无关的。



[Technical Specification]

1. T <= 50

2. 1 <= n, m <= 10^5

3. 1 <= ti <= 2*10^5, 1 <= i <= n

4. 1 <= q <= 2*10^5
Output
对于每个询问,请计算并输出该任务何时才干被运行,每个询问输出一行。
Sample Input
1
5 5
1 2 3 5 6
1
2
3
4
5
Sample Output
4
4
4
4
7
//本题要是直接做会超时,所以採用预处理的方法。听说二分也能够,只是没有试过,感觉预处理已经挺快的了
//思路,开个数组,代表在i秒进行额外工作的时间。非常明显,在预处理的时候要从后往前找
//假设该时间该机器本身不须要工作,那么就吧时间不断的缩小
include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <limits.h>
#include <string.h>
#include <string>
#include <math.h>
#include <algorithm>
#include <iostream>
#include <stack>
#include <queue>
#include <deque>
#include <vector>
#include <set>
#include <map>
using namespace std;
#define N 100000 + 10
#define M 200000 + 10
int vis[M];
int take[M]; int main(){
int T,n,m; while(~scanf("%d",&T)){
while(T--){
memset(vis,0,sizeof(vis));
memset(take,0,sizeof(take));
scanf("%d%d",&n,&m);
int i,num;
for(i=1;i<=n;i++){
scanf("%d",&num);
vis[num] = 1;
}
int mark;
for(i=200000;i>=1;i--){
take[i] = i;
if(vis[i] == 0){
mark = i;
}
else{
take[i] = mark;
}
}
int t;
for(i=1;i<=m;i++){
scanf("%d",&t);
printf("%d\n",take[t]);
}
}
} return 0;
}

HDU4907小技巧的更多相关文章

  1. 前端网络、JavaScript优化以及开发小技巧

    一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...

  2. Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

    前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...

  3. 分享两个BPM配置小技巧

    1.小技巧 流程图修改后发布的话版本号会+1,修改次数多了之后可能会导致版本号很高,这个时候可以将流程导出,然后删除对应的流程包再导入,发布数据模型和流程图之后,版本清零 2.小技巧 有的同事入职后使 ...

  4. linux系统维护时的一些小技巧,包括系统挂载新磁盘的方法!可收藏!

    这里发布一些平时所用到的小技巧,不多,不过会持续更新.... 1.需要将history创建硬链接ln 全盘需要备份硬链接 ln /etc/xxx /home/xxx 2.root用户不可以远程 /et ...

  5. JS处理事件小技巧

    今天,就分享一下我自己总结的一些JS的小技巧: ①防止鼠标选中事件 <div class="mask" onselectstart="return false&qu ...

  6. iOS:小技巧(不断更新)

    记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...

  7. css小技巧(1)

    1.-webkit-overflow-scrolling: touch; 解决ios滑动时无缓冲问题 2.::-webkit-scrollbar 设置ios滑动时是否显示滚动条 3.::selecti ...

  8. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  9. ios开发中的小技巧

    在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...

随机推荐

  1. C++刷称号——2707: 素数与要素

    Description 从键盘输入的随机整数n,如果n不是质数,然后计算n所有的因素(不含1).例如,对于16,出口2,4,8:否则输出"It is a prime number." ...

  2. 生命周期-初识IOS

    经常因为生命周期的事情,而视图顺序加载错误,或者出现一系列的小错误并且修改不出来,程序员不知道生命周期确实挺可悲的. IOS生命周期: 自上而下的执行,并且viewDidLoad只会执行一次,所以我们 ...

  3. Entity Framework - Func引起的数据库全表查询

    原文:http://www.cnblogs.com/dudu/archive/2012/04/01/enitity_framework_func.html 使用 Entity Framework 最要 ...

  4. jquery操作iframe

    query取得iframe中元素的几种方法 在iframe子页面获取父页面元素 代码如下: $('#objId', parent.document); // 搞定... 在父页面 获取iframe子页 ...

  5. Base64加密解密

    /// <summary> /// 实现Base64加密解密 /// </summary> public sealed class Base64 { /// <summa ...

  6. Geodatabase - 删除要素

    //删除要素类. //例如:workspacePath=@"G:\doc\gis\1.400\data\pdb.mdb", featureClassPath="res2_ ...

  7. oracle 全文检索

    一.使用 sys 用户登录oracle (1)运行—cmd—sqlplus — sys/密码 @连接字符 as sysdba 二.授权 1.grant ctxapp to 全文检索使用用户: 2.gr ...

  8. 解决mdi窗体闪烁的问题

    /// 解决mdi窗体闪烁的问题 /// </summary> protected override CreateParams CreateParams { get { CreatePar ...

  9. ASP.NET MVC4 + Highcharts生成报表

    //后端 public ActionResult TighteningReport(BReportTighteningReportModel model, string rate, string we ...

  10. 换行word-wrap与word-break兼容IE和FIREFOX -----设计师零张

    word-wrap是控制换行的.使用break-word时,是将强制换行.中文没有任何问题,英文语句也没问题.但是对于长串的英文,就不起作用.word-break是控制是否断词的.normal是默认情 ...