pearl(二分查找,stl)
最近大概把有关二分的题目都看了一遍...
嗯..这题是二分查找...二分查找的代码都类似,所以打起来会水很多
但是刚开始打二分还是很容易写挂..所以依旧需要注意
题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)的更多相关文章
- [USACO09DEC]音符Music Notes (二分、STL)
https://www.luogu.org/problem/P2969 题目描述 FJ is going to teach his cows how to play a song. The song ...
- 【转】STL之二分查找 (Binary search in STL)
Section I正确区分不同的查找算法count,find,binary_search,lower_bound,upper_bound,equal_range 本文是对Effective STL第4 ...
- STL之二分查找 (Binary search in STL)
STL之二分查找 (Binary search in STL) Section I正确区分不同的查找算法count,find,binary_search,lower_bound,upper_bound ...
- STL 二分查找三兄弟(lower_bound(),upper_bound(),binary_search())
一:起因 (1)STL中关于二分查找的函数有三个:lower_bound .upper_bound .binary_search -- 这三个函数都运用于有序区间(当然这也是运用二分查找的前提),以 ...
- STL中的二分查找———lower_bound,upper_bound,binary_search
关于STL中的排序和检索,排序一般用sort函数即可,今天来整理一下检索中常用的函数——lower_bound , upper_bound 和 binary_search . STL中关于二分查找的函 ...
- STL中的二分查找
本文转载于https://blog.csdn.net/riba2534/article/details/69240450 使用的时候注意:必须用在非递减的区间中 二分查找的原理非常简单,但写出的代码中 ...
- C++ STL中的Binary search(二分查找)
这篇博客转自爱国师哥,这里给出连接https://www.cnblogs.com/aiguona/p/7281856.html 一.解释 以前遇到二分的题目都是手动实现二分,不得不说错误比较多,关于返 ...
- STL模板整理 Binary search(二分查找)
前言: 之前做题二分都是手动二分造轮子,用起来总是差强人意,后来看到STL才发现前辈们早就把轮子造好了,不得不说比自己手动实现好多了. 常用操作 1.头文件 #include <algorith ...
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
STL中的二分查找函数 1.lower_bound函数 在一个非递减序列的前闭后开区间[first,last)中.进行二分查找查找某一元素val.函数lower_bound()返回大于或等于val的第 ...
随机推荐
- DynamicReports
try { response.setCharacterEncoding("UTF-8"); response.setHeader("Content-disposition ...
- FloatyFish下载量
老师之前没有统一好一个平台,为了公平起见,我们选择了知名度比较高的CSDN,上次课上给老师说的下载量已成为过去,我们目前的下载量是: 这里还有我们最真实的用户体验,来自CSDN的用户,而非我们的朋友: ...
- 带格式分离两个RichEditControl的文本
using( RichEditControl selector = new RichEditControl() { RtfText = richTextFromHtml } ) { DocumentR ...
- Lucene.Net简介和分词
Lucene.net站内搜索—2.Lucene.Net简介和分词 2015-03-24 23:10 by 邹琼俊, 118 阅读, 1 评论, 收藏, 编辑 Lucene.Net简介 Lucene.N ...
- springMVC 获取本地项目路径 及后整理上传文件的方法
String path=request.getSession().getServletContext().getRealPath("upload/img/product"); // ...
- App根据第,HTML5流行?
App根据第.HTML5流行? 引用新闻 日前,有消息称国家网信办近日将出台APP应用程序发展管理办法.中央网信办主任鲁炜在推进网络空间法治化座谈会上透露.我国将加强互联网立法,依靠严密的法律网来打造 ...
- SQL点滴35—SQL语句中的exists
原文:SQL点滴35-SQL语句中的exists 比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHE ...
- PHP 13: 类
原文:PHP 13: 类 Notice: This article is working on progress!本章将介绍PHP类.现在,基本上每种语言都支持面向对象,当然PHP也不列外.PHP在以 ...
- 使用.net备份和还原数据库
原文:使用.net备份和还原数据库 CSDN网友的提问http://community.csdn.net/Expert/TopicView3.asp?id=4929678C#实现SQLSERVER20 ...
- 基于C# 语言的两个html解析器
基于C# 语言的两个html解析器 1)Html Agility Pack http://nsoup.codeplex.com/ 代码段示例: HtmlDocument doc = new HtmlD ...