/*
题目的大意是 给你 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. wpgcms---banner图怎么调用

    使用wpgcms调用banner图,首先新建应用为 自定义应用,然后添加对应的字段信息,例如: 具体调用方式: <ul> {% set bannerlist = wpg.appdata.g ...

  2. 7.24python协程(2)和IO模型

    2018-7-24 08:50:29 异步IO模型 epoll  机制  linux 给每个监听对象绑定回调函数,当要读的对象来了时候,回调函数直接被执行,然后通知用户,效率非常高! python无法 ...

  3. GitHub 终端加速最佳实践

    终端加速 GitHub 方法的前置条件, 一是购买了加速服务或者租用 VPS 搭建加速服务, 二是系统是 macOS, 三是终端是 iTerm, 四是 Shell 是 zsh. 终端加速 GitHub ...

  4. Keepalived指定文件接收日志

    keepalived默认日志接收文件为/var/log/messages不方便查看,可以指定文件接收日志 修改配置文件/etc/sysconfig/keepalived KEEPALIVED_OPTI ...

  5. JS中生成和解析JSON

    1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name = "jyy"; ...

  6. PLSQL过程创建和调用

    存储过程 创建过程范例 create or replace procedure pro_kingsql_p1( p_one in varchar2,--可以传入参数 p_two out varchar ...

  7. Chrome百度不显示中文字体

    chrome://flags/ 启用DirectWrite 关闭就可以了

  8. 问题:bower git is not installed or not in the path

    用bower install jquery安装jquery,bower提示错误bower git is not installed or not in the path. 根据错误信息的知道出现错误两 ...

  9. Chart控件的使用实例

    ChartTest.aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=&quo ...

  10. 【JMeter】如何录制创建及得到曲线图

    前段时间公司需要对服务器进行压力测试,包括登录前的页面和登录后的页面,主要目的是测试负载均衡的实现效果.不知道是不是因为Jmeter不如loadRunner火爆还是什么,网上关于Jmeter的资料有很 ...