洛谷 P1918 保龄球

摘要:
M≤10^9lower_#包括<算法>#包括<使用namespacestd;t、 }a[100005];}布尔运算器<b) {returna.t<n);对于(inti=1;i<=n;a[i].t),a[i].c=i;排序(a+1,a+n+1);q);y;

题目描述

DL 算缘分算得很烦闷,所以常常到体育馆去打保龄球解闷。因为他保龄球已经打了几十年了,所以技术上不成问题,于是他就想玩点新花招。

DL 的视力真的很不错,竟然能够数清楚在他前方十米左右每个位置的瓶子的数量。他突然发现这是一个炫耀自己好视力的借口——他看清远方瓶子的个数后从某个位置发球,这样就能打倒一定数量的瓶子。

1 OOO

2 OOOO

3 O 4 OO

如上图,每个“O”代表一个瓶子。如果 DL 想要打倒 3 个瓶子就在 1 位置发球,想要打倒 4 个瓶子就在 2 位置发球。

现在他想要打倒 m 个瓶子。他告诉你每个位置的瓶子数,请你给他一个发球位置。

输入输出格式

输入格式:

输入文件名为 bowling.in。

第一行包含一个正整数 n,表示位置数。

第二行包含 n 个正整数,第 i 个数。表示第 i 个位置的瓶子数,保证各个位置的瓶子数不同。

第三行包含一个正整数 Q,表示 DL 发球的次数。

第四行至文件末尾,每行包含一个正整数 m,表示 DL 需要打倒 m 个瓶子。

输出格式:

输出文件名为 bowling.out。

共 Q 行。每行包含一个整数,第 i 行的整数表示 DL 第 i 次的发球位置。若无解,则输出 0。

输入输出样例

输入样例#1:
5
1 2 4 3 5
2
4
7
输出样例#1:
3
0

说明

【数据范围】

对于 50%的数据,1 ≤ n,Q ≤ 1000,1 ≤ai,M ≤ 10^5

对于 1000%的数据,1 ≤ n,Q ≤ 100000,1 ≤ai,M ≤ 10^9

lower_bound水过 

屠龙宝刀点击就送

#include <algorithm>
#include <cstdio>
using namespace std;
struct row
{
    int c,t;
}a[100005];
bool operator <(const row &a,const int &b){return a.t<b;}
bool operator <(const row &a,const row &b){return a.t<b.t;}
int main()
{
    int n,q;scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%d",&a[i].t),a[i].c=i;
    sort(a+1,a+n+1);scanf("%d",&q);
    for(int x,y;q--;)
    scanf("%d",&x),y=lower_bound(a+1,a+n+1,x)-a,
    printf("%d
",a[y].t-x?0:a[y].c);
    return 0;
}

免责声明:文章转载自《洛谷 P1918 保龄球》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle进程说明微信裂变红包下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

svg 不同比例缩放后 拖拽事件的鼠标位置转换为svg图纸中的位置

说起来可能有点绕,下面尽可能的把我想表达的表述清楚吧 来看下下面这张图 svg元素的宽度和浏览器的宽度是不一样的,事实上,还有一个宽度,那就是svg画布的宽度 为什么会有这么多不一样的宽度呢,直接浏览器的宽高就是svg标签的宽高,同时也设置同样的画布宽高,不就不用转换拖拽事件鼠标的坐标位置了吗? 是这么个道理,一开始我也是这么干的,可是后来发现,不同客户...

Cocos2d-x中Vector使用

1、创建Vector对象 Vector()。默认的构造函数。 Vector(ssize_t capacity)。创建Vector对象,并设置容量。 Vector(const Vector<T> &other) 。用一个已存在的Vector对象创建另一个Vector对象,其中&other是左值引用参数传递。 Vector(Vec...

WinForm窗体自适应分辨率

我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观。实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可。因为窗体上控件的位置和大小是相对于自己所在的窗体的,也就是所谓的窗口坐标。     在这里我们只考虑相对于自己窗体的窗口坐标更简单,也就是成比例变化。为了多个窗...

[UE4]抛物线指示器

一、抛物线的有以下4中函数    二、本例使用Predict Projectile Path By TraceChannel方法。      抛物线三要素:发射位置、发射角度、发射速度。   1、Start Pos:起始位置   2、Launch  Velocity:发射速度,这是一个向量。向量是包括角度、长度(也可以理解是速度)。   3、Trace C...

Qt5之坐标系统

窗口坐标为逻辑坐标,是基于视口坐标系的。 视口坐标为物理坐标,是基于绘图设备坐标系的 窗口坐标始终以视口坐标为最终目标进行映射:  QPainter::setWindow 修改了窗口位置和大小(左上角重新定义了一个数值和长度) QPainter::setViewport 修改了视口位置和像素个数(左上角移动到相应位置和像素个数) -------------...

AI大视觉(八) | Yolov3 如何调整先验框进行解码?

​   本文来自公众号“AI大道理” 解码就是将预测得到的调整参数应用于先验框,从而得到预测框。 ​解码原理 YOLOv3借鉴RPN网络使用anchor boxes来预测边界框相对先验框的offsets。 YOLOv3预测边界框中心点相对于对应cell左上角位置的相对偏移值,使用sigmoid函数处理偏移值,这样预测的偏移值在(0,1)范围内(每个cell...