uva 13598
/*
题目的大意是 给你 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的更多相关文章
- uva 1354 Mobile Computing ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5
- UVA 10564 Paths through the Hourglass[DP 打印]
UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...
- UVA 11404 Palindromic Subsequence[DP LCS 打印]
UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...
- UVA&&POJ离散概率与数学期望入门练习[4]
POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...
- UVA计数方法练习[3]
UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...
- 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 ...
- UVA - 1625 Color Length[序列DP 代价计算技巧]
UVA - 1625 Color Length 白书 很明显f[i][j]表示第一个取到i第二个取到j的代价 问题在于代价的计算,并不知道每种颜色的开始和结束 和模拟赛那道环形DP很想,计算这 ...
- UVA - 10375 Choose and divide[唯一分解定理]
UVA - 10375 Choose and divide Choose and divide Time Limit: 1000MS Memory Limit: 65536K Total Subm ...
- 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 ...
随机推荐
- 【转】.Net+MySQL组合开发 乱码篇
所用工具MySQL5.022VS2005 Team SuiteMySQL Connector Net 5.0.3EMS SQL Manage 2005 For MySQL使用过MySQL的朋友都知道有 ...
- H3C系列之三层交换机文件管理
笔者本篇文章所用h3c交换机的型号为三层交换机S3600-28TP-SI 对于文件的操作一般都在用户视图下操作,常见的有如下一些操作: 1.查看操作,常用的查看操作可以使用如下命令: <H3C& ...
- 【CF888G】Xor-MST Trie树(模拟最小生成树)
[CF888G]Xor-MST 题意:给你一张n个点的完全图,每个点有一个权值ai,i到j的边权使ai^aj,求这张图的最小生成树. n<=200000,ai<2^30 题解:学到了求最小 ...
- android分辨率适配
重要概念 什么是屏幕尺寸.屏幕分辨率.屏幕像素密度? 什么是dp.dip.dpi.sp.px?他们之间的关系是什么? 什么是mdpi.hdpi.xdpi.xxdpi?如何计算和区分? 在下面的内容中我 ...
- springMVC + quartz实现定时器(任务调度器)
首先我们要知道任务调度器(定时器)有几种,这边我会写三种 第一种是基于JDK的本身的一个定时器(优点:简单,缺点:满足不了复杂的需求) package com.timer1; import java. ...
- poj2752seek the name, seek the fame【kmp】
The little cat is so famous, that many couples tramp over hill and dale to Byteland, and asked the l ...
- HDFS Snapshots
Overview HDFS Snapshots are read-only point-in-time copies of the file system. Snapshots can be take ...
- What is Gensim?
Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达.它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法, ...
- JMeter(十)-正则表达式关联
jmeter中,接口自动化的关键在于参数关联.比如需要登录的接口,如何调用登录口令?一个增删改查的闭环,如何将接口参数上下传递?下面就以实际的例子来仔细说一说 1:登录接口 这里有一个实际的登录接口, ...
- C语言概述
打印摄氏度 /* 1.1 使用int类型进行计算 */ #include <stdio.h> /* print Fahrenheit-Celsius table for fahr = 0, ...