/*
题目的大意是 给你 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. 【咸鱼教程】TextureMerger1.6.6 三:Bitmap Font的制作和使用

    BitmapFont主要用于特殊字体在游戏中的使用   目录 一 方法1:添加字符      适合一张一张的零碎图片来制作位图字体 二 方法2:系统字体      适合使用已安装的系统字体来制作位图字 ...

  2. 【CF653G】Move by Prime 组合数

    [CF653G]Move by Prime 题意:给你一个长度为n的数列$a_i$,你可以进行任意次操作:将其中一个数乘上或者除以一个质数.使得最终所有数相同,并使得操作数尽可能小.现在我们想要知道$ ...

  3. [压缩]C#下使用SevenZipSharp压缩解压文本

    using SevenZip; using System; using System.Collections.Generic; using System.IO; using System.Linq; ...

  4. android 设置系统屏幕亮度

    /** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 为 ...

  5. 【转载】51单片机data,bdata,idata,xdata使用注意事项

    "51单片机编程在不同内存空间data xdata bdata定义变量的注意事项": 关键词:51 单片机 编程 不同 内存空间 data xdatabdata 定义 变量 注意事 ...

  6. 基于pandas python的美团某商家的评论销售(数据分析)

    数据初步的分析 本文是该系列的第一篇 数据清洗 数据初步的统计 第二篇 数据可视化 第三篇 数据中的评论数据用于自然语言处理 from pyecharts import Bar,Pie import ...

  7. LightOJ 1030 - Discovering Gold - [概率DP]

    题目链接:https://cn.vjudge.net/problem/LightOJ-1030 You are in a cave, a long cave! The cave can be repr ...

  8. Kettle 4.2源码分析第一讲--Kettle 简介

    Pentaho Data Integration(PDI)简介 1. PDI结构简介 图 1‑1 PDI核心组件 Spoon是构建ETL Jobs和Transformations的工具.Spoon可以 ...

  9. (object) array

    <?php $current_language = (object)array ( 'name' => '火星文', 'timezone' => 'Asia/Tokyo', 'aut ...

  10. Node.js(daemon),tweak(debug ES)/nodejs forever,supervisor--express

    http://www.cnblogs.com/Darren_code/p/node_express.html express -e nodejs-product sudo npm install fo ...