第五章的第一个大理石的题,附上书上的代码

#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=10000;
int main()
{int n,q,x,a[maxn],kase=0;while(scanf("%d%d",&n,&q)==2&&n){printf("CASE# %d:\n",++kase);for(int i=0;i<n;i++)scanf("%d",&a[i]);sort(a,a+n);while(q--){scanf("%d",&x);int p=lower_bound(a,a+n,x)-a;if(a[p]==x)printf("%d found at %d\n",x,p+1);else printf("%d not found\n",x);}}return 0;
}

这个题里面有一个stl函数 lower_bound,这个函数参数为(数组起始位置,数组终止位置,所需要寻找的数x)—数组名,

函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置

举例如下:

一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,111.pos为要插入的位置的下标

pos = lower_bound( number, number + 8, 3) - number,pos = 0.即number数组的下标为0的位置。

pos = lower_bound( number, number + 8, 9) - number, pos = 1,即number数组的下标为1的位置(即10所在的位置)。

pos = lower_bound( number, number + 8, 111) - number, pos = 8,即number数组的下标为8的位置(但下标上限为7,所以返回最后一个元素的下一个元素)。

所以,要记住:函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置,且last的位置是越界的!!~

返回查找元素的第一个可安插位置,也就是“元素值>=查找值”的第一个元素的位置

UVA - 10474相关推荐

  1. 大理石在哪里?(Where is the Marble?,UVa 10474 )

    大理石在哪里?(Where is the Marble?,UVa 10474 ) Raju and Meena love to play with Marbles. They have got a l ...

  2. 《算法竞赛入门经典》 例题5-1 大理石在哪(Where is the Marble,UVa 10474)

    原题及翻译 Raju and Meena love to play with Marbles. 拉朱和米娜喜欢玩弹珠. They have got a lot of marbles with numb ...

  3. 大理石在哪儿 (Where is the Marble?,UVa 10474)

    题目描述:算法竞赛入门经典例题5-1 1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 ...

  4. UVA 10474 Where is the Marble

    题目描述: Raju and Meena love to play with Marbles. They have got a lot of marbles with numbers written ...

  5. 很有趣的STL初学资料

    1.泛型程序设计简介与迭代器的介绍 2.常见的STL容器及其例题应用(UVA10474,UVA101,UVA10815,UVA156,UVA540,UVA136 HDU1027,CF501B,HDU1 ...

  6. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  7. 初学者acm的练习题指南

    上机练习题参考题 忘了在哪找的啦~~希望对大家有帮助呦 <!--[if !supportLists]-->1.    <!--[endif]-->Programming Bas ...

  8. ICPC训练联盟2021寒假冬令营(7)_2021.01.26_笔记

    文章目录 试题链接 学习笔记 - C++STL.贪心算法 C++STL 迭代器 STL算法 关联式容器 贪心算法 介绍 使用贪心法能否得到最优解,是必须加以证明的. 体验贪心法内涵的实验范例 贪心法的 ...

  9. [搜索]UVa 129 困难的串

    题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...

最新文章

  1. 动真格!因为论文!138名研究生丧失学位申请资格,导师也被罚……
  2. linux改变工作目录命令,linux命令:cd命令,改变当前的工作目录
  3. DevExpress控件使用经验总结
  4. 数组长度属性以及JavaScript中的示例
  5. 内置函数补充 之 反射
  6. 金融matlab创建3x3数组,Matlatb金融时间序列工具箱——建立金融时间序列
  7. android四大组件小整
  8. Transact-SQL 存储过程(c#调用执行)
  9. Sublime Text插件:HTML+CSS+JAVASCRIPT+JSON快速格式化
  10. 利用VBB仿真——实现LCD+数字键盘的密码验证
  11. cocos2dx lua代码和图片资源加密和解密
  12. 【强化学习】强化学习介绍
  13. ubuntu20运行A-LOAM记录
  14. 华东师范大学副校长周傲英:未来,中国需要什么样的数据库?
  15. 最长递增子序列 java_最长递增子序列问题---动态规划
  16. 编程之旅-Day10
  17. 阿德莱德大学计算机专业学费,2020年阿德莱德大学计算机科学专业研究生申请条件及世界排名|学费介绍...
  18. 关于推送消息的简要分析
  19. 怎么在SAP MM库存管理中使用简单的货架管理功能
  20. 安卓手机Android文件夹下obb文件是什么,obb是什么文件?怎么使用obb文件夹

热门文章

  1. 【原创】搭建spark环境中的坑及解决办法
  2. 字符串之String类
  3. HDU-1151 Air Raid
  4. Android XML的操作(SAX)
  5. 十二个月内 仅仅依靠Google打造成功网站
  6. 机器学习之决策树_CART算法
  7. Slimer软工课设日报-2016年7月1日
  8. SUDTOJ 3323园艺问题 (线段树)
  9. 你的Android应用完全不需要那么多的权限
  10. WPF中MVVM模式(简略介绍)