当前位置: 首页 > news >正文

STL--排序与检索

题目

现有N个大理石,每个大理石上写了一个非负整数。首先把各数从小到大排序,然后回答Q个问题。每个问题是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石写着x。排序后的大理石从左到右编写为1-N。(样例中,所有大理石上的数合并到一行,所有问题也合并到一行)

输入输出样例

输入样例

4 1
2 3 5 1
5 
5 2
1 3 3 3 1
2 3 

输出样例

CASE# 1:
5 found at 4
CASE# 2:
2 not found
3 found at 3

代码

#include<iostream>
#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;
} 

       上面代码中的sort函数可以对任意对象进行排序,不一定是内置类型。如果希望用sort排序,这个函数需要定义“小于”运算符,或者在排序时传入一个“小于”函数。排序对象可以存在于普通数组里,也可以存在于vector中。前者用sort(a,a+n)的方式调用,后者用sort(v.begin(),v.end())的方式调用。lower_bound的作用是“大于或者等于x的第一个位置”。

http://www.lryc.cn/news/266434.html

相关文章:

  • 大数据处理与分析-Spark
  • 虚拟机的下载、安装(模拟出服务器)
  • K8S Pod Terminating/Unknown故障排查
  • labelme标注的json文件数据转成coco数据集格式(可处理目标框和实例分割)
  • MySQL报错:1366 - Incorrect integer value: ‘xx‘ for column ‘xx‘ at row 1的解决方法
  • MySQL中MVCC的流程
  • 朴素贝叶斯法_naive_Bayes
  • Windows下安装MongoDB实践总结
  • 华为云Stack 8.X 流量模型分析(二)
  • rk3588 之启动
  • ARM GIC (五)gicv3架构-LPI
  • sql-labs服务器结构
  • 【小沐学写作】Docsify制作在线电子书、技术文档(Docsify + Markdown + node)
  • 电脑完全重装教程——原版系统镜像安装
  • 【智慧办公】如何让智能会议室的电子标签实现远程、批量更新信息?东胜物联网硬件网关让解决方案更具竞争力
  • 面向对象设计与分析40讲(16)静态工厂方法模式
  • 【贪心】买卖股票的最佳时机含手续费
  • Altium Designer入门到就业【目录】
  • cmake 查看编译命令,以及在vscode中如何使用cmke
  • 玩转 Scrapy 框架 (一):Scrapy 框架介绍及使用入门
  • node.js mongoose index(索引)
  • 谷歌推大语言模型VideoPoet:文本图片皆可生成视频和音频
  • ES-mapping
  • Centos 7.9安装Oracle19c步骤亲测可用有视频
  • .NET中的Swagger使用
  • 结构屈曲分析
  • Flink 客户端操作命令及可视化工具
  • csrf自动化检测调研
  • 记录一个Python鼠标自动模块用法和selenium加载网页插件的设置
  • 【数据库系统概论】第3章-关系数据库标准语言SQL(1)