【CODE[VS]】1230 元素查找 二分
来源:互联网 发布:淘宝大童女装店铺排名 编辑:程序博客网 时间:2024/06/08 17:30
题目传送门
这是一篇无聊的水博客,请各位大佬慎入QwQ。
很显然,这题只要是懂一点点基础知识的小学生都会做的题目,但是我们的重点不在这道题上。
今天讲课时讲到了lower_bound和upper_bound函数,于是就去学了一发。
这两个函数都包含在algorithm库里,用法也是挺简单的:lower_bound(st,ed,val)
st和ed表示起止位置,遵循前闭后开的区间原则,val表示要查找的值。
然后就是用法:lower_bound返回的是区间内大于等于val的最小权值的位置,upper_bound返回的是区间内大于val的最小权值的位置,若不存在则返回ed。
回到这题,可以用上述函数暴力水过。
附上AC代码:
#include <cstdio>#include <algorithm>using namespace std;const int N=1000010;int n,m,x,a[N],pos;int main(void){scanf("%d%d",&n,&m);for (int i=1; i<=n; ++i) scanf("%d",&a[i]);sort(a+1,a+1+n);while (m--){scanf("%d",&x);pos=lower_bound(a+1,a+1+n,x)-a;if (a[pos]==x) puts("YES"); else puts("NO");}return 0;}然后就是我们最关心的常数问题了,手打一个二分交上去,发现只比上面那个快了5ms……
哇,以后再也不用手打二分啦!(雾)总之,stl是个好东西……
p.s.如果是各种stl数据结构自带的lower_bound和upper_bound的话,常数会比较大,慎用啊……
对于这题,如果是用set的lower_bound的话,时间是上面那个代码的2倍……
阅读全文
0 0
- 【CODE[VS]】1230 元素查找 二分
- codevs 1230 元素查找 二分
- [二分]1159: 查找元素
- pat1010-穷举vs二分查找
- 二分查找目标元素索引
- 顺序元素的二分查找
- 关于排序之二分查找特定元素
- NYOJ练习题 删除元素(二分查找)
- NYOJ 776 删除元素(二分查找)
- 含有重复元素的二分查找算法
- 二分查找判定元素是否存在
- 二分查找、二分查找小于等于key的最后一个元素、二分查找大于等于key的第一个元素
- 二分查找法的元素查找次数求解
- 有序(循环)数组查找元素-二分查找法
- 【codevs1230】元素查找,弱弱的二分查找
- leetcode 162. Find Peak Element-查找峰元素|二分查找
- 二分查找(数组里查找某个元素) php php 二分查找
- 基本查找:数组元素无序(从头找到尾) * 二分查找(折半查找):数组元素有序
- 论文阅读:BiSeg: Simultaneous Instance Segmentation and Semantic Segmentation
- CodeForces 52 B.Right Triangles(水~)
- 通过xml处理sql语句时对小于号与大于号的处理转换
- 必备知识总结
- jenkins + Git 搭建持续集成环境
- 【CODE[VS]】1230 元素查找 二分
- 11.cookie和session
- 面试题整理-数据库
- 顺序表应用3:元素位置互换之移位算法
- Csimsoft.Bolt+Trelis.Pro
- centos 7.3中使能blk-mq
- eclipse 中git解决冲突
- Java集合---List(线性表)
- VM12虚拟机中的MacOSX 10.11.6扩容