/*
题目的大意是 给你 N 学生 然后 给前 K个学生编号了 给定的 号码 ,
然后你按照 使得接下来学生 学号尽量小的 方法 从第 K+1个学生开始编号
每个号码 自然只能用一次,
解答 : 先将编好的号码排好序,排完后 记录他们之间的 空格数,进行二分查找
有三种情况
1、学生就在 1至K中
2、学生在 K+1 到 D(K个学生中编号最大的那个数)
3、学生在D以后
1、3 都很好求,
对于第二种计算 他距离 第K个 学生都少位 ,然后再 之前算好的空格中 安排他
我为何如此的弱 想了 一天才明白是这样做的 之前的 想法还 wa了 很多次
我为何如此的弱
*/ #include <iostream>
#include <cstdio>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn=50005;
int N[maxn],V[maxn],G[maxn];
int n,K,Q;
int bird(int D){
int L=0,R=K,mid;
while(L<R){
mid=L+(R-L)/2;
if(G[mid]>=D) R=mid;
else L=mid+1;
}
if(G[L]>=D)L--;
int Val=D-G[L]+V[L];
return Val;
}
int main()
{
V[0]=0;
int t;
scanf("%d",&t);
for(int KA=1;KA<=t;KA++){
printf("Case %d:\n",KA);
scanf("%d%d%d",&n,&K,&Q);
for(int i=1;i<=K;i++){
scanf("%d",&N[i]);
V[i]=N[i];
}
sort(V+1,V+(K+1));
G[K]=0;
for(int i=1;i<=K;i++)
G[i]=V[i]-V[i-1]-1+G[i-1];
while(Q--){
int D;
scanf("%d",&D);
if(D<=K){ printf("%d\n",N[D]);continue;}
if(D>V[K]){ printf("%d\n",D);continue;}
D=bird(D-K);
printf("%d\n",D);
} } return 0;
}

uva 13598的更多相关文章

  1. uva 1354 Mobile Computing ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5

  2. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  3. UVA 11404 Palindromic Subsequence[DP LCS 打印]

    UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...

  4. UVA&&POJ离散概率与数学期望入门练习[4]

    POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...

  5. UVA计数方法练习[3]

    UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...

  6. UVA数学入门训练Round1[6]

    UVA - 11388 GCD LCM 题意:输入g和l,找到a和b,gcd(a,b)=g,lacm(a,b)=l,a<b且a最小 g不能整除l时无解,否则一定g,l最小 #include &l ...

  7. UVA - 1625 Color Length[序列DP 代价计算技巧]

    UVA - 1625 Color Length   白书 很明显f[i][j]表示第一个取到i第二个取到j的代价 问题在于代价的计算,并不知道每种颜色的开始和结束   和模拟赛那道环形DP很想,计算这 ...

  8. UVA - 10375 Choose and divide[唯一分解定理]

    UVA - 10375 Choose and divide Choose and divide Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  9. UVA - 11584 Partitioning by Palindromes[序列DP]

    UVA - 11584 Partitioning by Palindromes We say a sequence of char- acters is a palindrome if it is t ...

随机推荐

  1. ToStringBuilder类

    文章来源:http://blog.csdn.net/zhaowen25/article/details/39521899 apache的commons-lang3的工具包里有一个ToStringBui ...

  2. java不足前面补0

    // 0 代表前面补充0 // 3代表长度为3 // d 代表参数为正数型 result=String.format("%0"+3+"d",result);

  3. Spark2 文件处理和jar包执行

    上传数据文件 mkdir -p data/ml/ hadoop fs -mkdir -p /datafile/wangxiao/ hadoop fs -ls / hadoop fs -put /hom ...

  4. 8.30前端jQuery和数据结构知识

    2018-8-30 16:37:17 单链表的demo 从俺弟家回来了! 发现,还是要努力学习是很重要的!!努力学习新的感兴趣的东西!! 多读书还是很重要的!!! 越努力,越幸运! # coding: ...

  5. Python 基础知识(一)

    1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...

  6. ceil 和floor

    ceil 天花板 floor 地板 ceil向上取整 foor向下取整

  7. ubuntu16.04 1080ti显卡驱动安装

    https://blog.csdn.net/qq_38451119/article/details/81008165 https://blog.csdn.net/lernering/article/d ...

  8. .Net微服务架构之运行日志分析系统

    一.引言 .Net技术栈目前还没有像spring cloud相对完整一整微服务架构栈,随着业务发展系统架构演进,自行构建.Net技术体系的微服务架构,配套相关核心组件.因平台基于微服务架构方式研发,每 ...

  9. python 关于GUI的思考(转)

    作者:知乎用户链接:https://www.zhihu.com/question/19721063/answer/21311275来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  10. Oracle体系结构之联机日志文件管理

    日志文件分类:重做日志文件 归档日志文件 警告日志文件 跟踪日志文件 redo_log_file文件作用: 1)维护数据一致性 2)记录了数据库里的更改操作 redo_log_friles以组为单位, ...