最近大概把有关二分的题目都看了一遍...

嗯..这题是二分查找...二分查找的代码都类似,所以打起来会水很多

但是刚开始打二分还是很容易写挂..所以依旧需要注意

题2 天堂的珍珠
【题目描述】
我有很多很多(n条)用魔法合成的珍珠项链……(其实神仙比凡人更爱美),每天起来我都要从中挑一条戴上……挑哪条很有讲究,如果比情敌**的难看,那么就会被**(-_-),如果比天后Hera的好看,那么就完蛋了(-_-)。所以我希望你能帮帮我,解决这个令人头疼的问题——每天帮我算算,那天我能戴的项链有多少条。
【输入文件】(pearl.in):
第一行为正整数n(项链总条数)。
第二行有n个整数(代表每条项链晶的好看程度Xi,<=Xi<=maxlongint。)
第三行为正整数m,表示总天数(也就是总询问次数)。
以下m行,每行两个整数Ai,Bi(<=Ai,Bi<=maxlongint),询问好看程度在Ai到Bi之间的项链条数(含等于Ai或Bi的,Ai与Bi大小关系不确定)。
【输出文件】(pearl.out):
输出m行,对于每次询问输出一行,从Ai到Bi(含Ai,Bi)好看程度在Ai到Bi之间的项链条数。
【输入样例1】: 【输出样例1】: 【数据规模】
对于25%数据,有m,n<=。
对于100%数据,有m,n<=。

pearl

#include<cstdio>
#include<algorithm>
using namespace std;
int a[100001],b[100001],s=0,p=0,n,mid;
int main(){
int i,j,t,m,x,y;
freopen("pearl.in","r",stdin);freopen("pearl.out","w",stdout); scanf("%d",&n);
for (int i=0;i<n;i++) scanf("%d",&a[i]);
sort(a,a+n);
scanf("%d",&m);
for (int i=0;i<m;i++){
int r=n-1,l=0;
scanf("%d%d",&x,&y);
if (x>y) {t=x;x=y;y=t;}
if (x<a[0]) x=a[0];if (y>a[n-1]) y=a[n-1];
while(l!=r){
mid=(l+r)>>1;
if(x>a[mid])l=l+1;
else r=mid;
}
if(a[l]<x) l=l+1;
s=l;
r=n-1,l=0;
while(l!=r){
mid=(l+r)>>1;
if(y>=a[mid])l=l+1;
else r=mid;
}
if(a[l]>y)l=l-1;
p=l;
if(s>p)b[i]=0;
else b[i]=p-s+1;
}
for(i=0;i<m;i++) printf("%d\n",b[i]);
return 0;
}

  表示调用sort简直爽

以及自己年轻了一下,以为cena不会这么傻缺输入的时候逗比了一下

还有自己的代码能力需要加强啦


哦。。之后看到了这题调用stl的方法...这里mark一下

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int v[100001],w[100001];
int main(){
int n,m,a,b;
freopen("pearl.in","r",stdin);freopen("pearl.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++) scanf("%d",&v[i]);
sort(v,v+n);
for(int i=0;i<m;i++){
scanf("%d%d",&a,&b);
w[i]=upper_bound(v,v+n,b)-lower_bound(v,v+n,a);
}
for (int i=0;i<m;i++) printf("%d\n",w[i]);
fclose(stdin);fclose(stdout);
return 0;
}

  

pearl(二分查找,stl)的更多相关文章

  1. [USACO09DEC]音符Music Notes (二分、STL)

    https://www.luogu.org/problem/P2969 题目描述 FJ is going to teach his cows how to play a song. The song ...

  2. 【转】STL之二分查找 (Binary search in STL)

    Section I正确区分不同的查找算法count,find,binary_search,lower_bound,upper_bound,equal_range 本文是对Effective STL第4 ...

  3. STL之二分查找 (Binary search in STL)

    STL之二分查找 (Binary search in STL) Section I正确区分不同的查找算法count,find,binary_search,lower_bound,upper_bound ...

  4. STL 二分查找三兄弟(lower_bound(),upper_bound(),binary_search())

    一:起因 (1)STL中关于二分查找的函数有三个:lower_bound .upper_bound .binary_search  -- 这三个函数都运用于有序区间(当然这也是运用二分查找的前提),以 ...

  5. STL中的二分查找———lower_bound,upper_bound,binary_search

    关于STL中的排序和检索,排序一般用sort函数即可,今天来整理一下检索中常用的函数——lower_bound , upper_bound 和 binary_search . STL中关于二分查找的函 ...

  6. STL中的二分查找

    本文转载于https://blog.csdn.net/riba2534/article/details/69240450 使用的时候注意:必须用在非递减的区间中 二分查找的原理非常简单,但写出的代码中 ...

  7. C++ STL中的Binary search(二分查找)

    这篇博客转自爱国师哥,这里给出连接https://www.cnblogs.com/aiguona/p/7281856.html 一.解释 以前遇到二分的题目都是手动实现二分,不得不说错误比较多,关于返 ...

  8. STL模板整理 Binary search(二分查找)

    前言: 之前做题二分都是手动二分造轮子,用起来总是差强人意,后来看到STL才发现前辈们早就把轮子造好了,不得不说比自己手动实现好多了. 常用操作 1.头文件 #include <algorith ...

  9. STL中的二分查找——lower_bound 、upper_bound 、binary_search

    STL中的二分查找函数 1.lower_bound函数 在一个非递减序列的前闭后开区间[first,last)中.进行二分查找查找某一元素val.函数lower_bound()返回大于或等于val的第 ...

随机推荐

  1. 发布一个参考ssdb,使用go类似的实现redis高性能nosql:ledisdb

    起因 ledisdb是一个參考ssdb.採用go实现,底层基于leveldb,相似redis的高性能nosql数据库,提供了kv,list,hash以及zset数据结构的支持. 我们如今的应用极大的依 ...

  2. AT&amp;T汇编——在你开始写

    不知不觉,少年将超过,计算机相关知识,学到基本上可以说是教过.毕业.所以,我们打算更深入了解自己的兴趣背着背笼.也因为它是检讨大学. 计划写的内容在: 1.汇编语言 2.C/C++语言 3.Linux ...

  3. Access Toke调用受保护的API

    ASP.NET Web API与Owin OAuth:使用Access Toke调用受保护的API 在前一篇博文中,我们使用OAuth的Client Credential Grant授权方式,在服务端 ...

  4. 从头开始学JavaScript (十)——垃圾收集

    原文:从头开始学JavaScript (十)--垃圾收集 一.垃圾收集 1.1javascript垃圾收集机制: 自动垃圾收集,执行环境会负责管理代码执行过程中的使用的内存.而在C和C++之类的语言中 ...

  5. .NET 中易混淆的概念(Delegate vs Event)

    事件(event)是一个非常重要的概念,我们的程序时刻都在触发和接收着各种事件:鼠标点击事件,键盘事件,以及处理操作系统的各种事件.所谓事件就是 由某个对象发出的消息.比如用户按下了某个按钮,某个文件 ...

  6. BZOJ 1355 Baltic2009 Radio Transmission KMP算法

    标题效果:给定一个字符串,求最小周期节(不能整除) 示例Hint这是错误的忽略了就好了 环路部分应该是cab 这个称号充分利用KMP在next自然阵列,那是,n-next[n]它表示一个循环节 POJ ...

  7. ios结构体httpPost头结构

    ios结构体httpPost头结构 by 吴雪莹 NSString* urlStr = @"; NSURL* url = [NSURL URLWithString:urlStr]; NSMu ...

  8. kprobe 内核模块

    代码来自于linux内核sample/kprobe kprobe_example.c /* * NOTE: This example is works on x86 and powerpc. * He ...

  9. 工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境

    上文中我们介绍<工作笔记2.软件开发经常使用工具> 从今天開始本文将教大家怎样进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个 ...

  10. Java JDK 8 安装和环境变量的配置(Linux and Windows)

    Java JDK 8 的安装以及环境变量的配置(Linux and Windows) JDK(Java Development Kit)包含了Java语言的编译器,能够在这里下载: http://ww ...