ACM训练,大理石在哪儿?
int p = lower_bound(a, a+num, x) - a; //在已排序数组a中查找大于或等于x的第一个位置
lower_bound( )返回的是一个迭代器,-a相当于减去a的首地址,返回的p即是它们之间的距离。
关于此函数的使用样例:
一个数组number序列为:4,10,11,30,69,70,96,100.(注:number为数组名)
pos = lower_bound( number, number + 8, 4) - number,pos = 0.即number数组的下标为0的位置。
pos = lower_bound( number, number + 8, 10) - number, pos = 1,即number数组的下标为1的位置。
pos = lower_bound( number, number + 8, 100) - number, pos = 7,即number数组的下标为7的位置。
sort(a, a + N); // 将 N 个数字升序排列
加上头文件后在数组中可以直接使用,a为数组名,N为数组长度。
两个函数都使用到的头文件:#include <algorithm>
外加 using namespace std;
···完整代码如下
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxNum = 10005;
int main() {
// N个大理石,Q个问题,qu猜测数字
// a存放数字
int N, Q, x,a[maxNum], kase = 0;
while(scanf("%d%d", &N, &Q) == 2 && N) {
printf("CASE# %d:\n", ++kase); // kase对样例记号,排序
for(int i = 0; i < N; i++) {
scanf("%d", &a[i]); // 存在数组中,数组大小为N
}
// 排序
sort(a, a + N); // 将 N 个数字升序排列
while(Q--) { // Q代表查几次
scanf("%d", &x); // x 是要查找的数字
int p = lower_bound(a, a + N, x) - a;// lower_bound(a, a + N, x)
if(a[p] == x) { // 在已排序数组a中查找大于或等于x的第一个位置
printf("%d found at %d\n", x, p + 1);
} else {
printf("%d not found\n", x);
}
}
}
return 0;
}
---------------------
作者:MissXy_
来源:CSDN
原文:https://blog.csdn.net/MissXy_/article/details/76736215
ACM训练,大理石在哪儿?的更多相关文章
- 寒假的ACM训练(一)
今天开始ACM训练,选择了刘汝佳的<挑战编程>,暂时算是开始了. 测评的网址: http://www.programming-challenges.com 第一个题目是水题啦.3n+1. ...
- 计蒜客 28449.算个欧拉函数给大家助助兴-大数的因子个数 (HDU5649.DZY Loves Sorting) ( ACM训练联盟周赛 G)
ACM训练联盟周赛 这一场有几个数据结构的题,但是自己太菜,不会树套树,带插入的区间第K小-替罪羊套函数式线段树, 先立个flag,BZOJ3065: 带插入区间K小值 计蒜客 Zeratul与Xor ...
- 2014暑假ACM训练总结
2014暑假ACM训练总结报告 匆匆之中,一个暑假又过去了,在学校训练的这段日子真的是感觉日子过得好快啊! 时光如箭,日月如梭! 匆忙的学习之中一个暑假就这样结束了,现在就来写一些总结吧,供自己以后阅 ...
- 计蒜客 ACM训练联盟周赛 第一场 Christina式方格取数 思维
助手Christina发明了一种方格取数的新玩法:在n*m的方格棋盘里,每个格子里写一个数.两个人轮流给格子染色,直到所有格子都染了色.在所有格子染色完后,计算双方的分数.对于任意两个相邻(即有公共边 ...
- 计蒜客 ACM训练联盟周赛 第一场 从零开始的神棍之路 暴力dfs
题目描述 ggwdwsbs最近被Zeratul和Kyurem拉入了日本麻将的坑.现在,ggwdwsbs有13张牌,Kyurem又打了一张,加起来有14张牌.ggwdwsbs想拜托你帮他判断一下,这14 ...
- 计蒜客 ACM训练联盟周赛 第一场 Alice和Bob的Nim游戏 矩阵快速幂
题目描述 众所周知,Alice和Bob非常喜欢博弈,而且Alice永远是先手,Bob永远是后手. Alice和Bob面前有3堆石子,Alice和Bob每次轮流拿某堆石子中的若干个石子(不可以是0个), ...
- [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式
ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...
- 最近关于ACM训练与算法的总结
到了大四以后越来越意识到基础知识的重要性,很多高屋建瓴的观点与想法都是建立在坚实的基础之上的, 招式只有在强劲的内力下才能发挥最大的作用,曾经有段时间我有这样的想法:我们出去以后和其他 ...
- ACM训练小结-2018年6月16日
今天题目情况如下:A题:线段树+XOR性质.情况:由于写法问题,调试困难,浪费大量时间.B题:(对所有满足i mod p==q,求a[i]之和),无修改,直接上n*sqrt(n)的分块写法.情况:由于 ...
随机推荐
- HashMap相关
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] ta ...
- Django ORM 多对多操作 使用聚合函数和分组 F查询与Q查询
创建表 # models.py form django.db import models class Book(models.Model): # 表名book,django会自动使用项目名+我们定义的 ...
- Spring源码-IOC部分-容器初始化过程【2】
实验环境:spring-framework-5.0.2.jdk8.gradle4.3.1 Spring源码-IOC部分-容器简介[1] Spring源码-IOC部分-容器初始化过程[2] Spring ...
- JVM 问题分析思路
1. 前言 工作中有可能遇到 java.lang.OutOfMemoryError: Java heap space 内存溢出异常, 本文提供一些内存溢出的分析及解决问题的思路. 常见异常如下: 20 ...
- nginx103
user nobody;worker_processes 1;error_log /home/logs/error.log info;#pid logs/nginx.pid;ev ...
- js 保护网站
转载请注明来源:https://www.cnblogs.com/hookjc/ <!--禁止鼠标右键代码--><noscript><iframe src=*.html&g ...
- 关于obj.class.getResource()和obj.getClass().getClassLoader().getResource()的路径问题
感谢原文作者:yejg1212 原文链接:https://www.cnblogs.com/yejg1212/p/3270152.html 注:格式内容与原文有轻微不同. Java中取资源时,经常用到C ...
- Java中命名Dao、Bean、conn等包的含义(不定期补充)
感谢大佬:https://blog.csdn.net/j904538808/article/details/78904732 (1)DAO是Data Access Object数据访问接口.数据访问: ...
- NSMutableDictionary基本概念
1.NSMutableDictionary 基本概念 什么是NSMutableDictionary NSMutableDictionary是NSDictionary的子类 NSDictionary是不 ...
- Java基础复习(三)
1. &和&&的区别. &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则 ...