题目链接

https://www.acwing.com/problem/content/791/

思路

写一个划分x为左边界和有边界的整数二分方法即可

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000009
#define endl "\n"
#define PII pair<int,int>
ll ksm(ll a,ll b) {ll ans = 1;for(;b;b>>=1LL) {if(b & 1) ans = ans * a % mod;a = a * a % mod;}return ans;
}ll lowbit(ll x){return -x & x;}const int N = 2e6+10;
int n,q,a[N];
// 区间[l, r]被划分成[l, mid - 1]和[mid, r]
int findR(int l,int r,int x){while(l < r) {int mid = l + r + 1 >> 1;if(a[mid] <= x) l = mid;else r = mid - 1;}return r;
}
// 区间[l, r]被划分成[l, mid]和[mid + 1, r]
int findL(int l,int r,int x){while(l < r) {int mid = l + r >> 1;if(a[mid] >= x) r = mid;else l = mid + 1;}return r;
}int main()
{scanf("%d%d",&n,&q);for(int i = 0;i < n; ++i) {scanf("%d",&a[i]);}int x;while(q--){scanf("%d",&x);int k = findL(0,n-1,x);if(a[k] != x){printf("-1 -1\n");continue;}printf("%d ",k);k = findR(0,n-1,x);printf("%d\n",k);}return 0;
}

AcWing 789. 数的范围相关推荐

  1. AcWing 789. 数的范围 (整数二分)

    AcWing 789. 数的范围 题意: 给定一个升序数组 输入一个数 输出这个数第一次出现的下标和最后一次出现的下标 如果这个数不存在则输出-1 -1 思路: 用两次二分 第一次用来找到key出现的 ...

  2. AcWing 790.数的三次方根

    题解:数的三次方根 题目描述 思路分析 代码实现 题目描述 题目链接: https://www.acwing.com/problem/content/792/ 思路分析 这个题的思路可以参考AcWin ...

  3. Java124 0,AcWing 124. 数的进制转换java

    package acwing寒假每日一题; import java.io.BufferedInputStream; import java.util.*; public class TransNumb ...

  4. 备战蓝桥杯—有边数限制的最短路 (bellman_ford+)——[AcWing]有边数限制的最短路

    因为近期在学图,所以顺带的写一篇最短路的备战蓝桥杯文章. 最短路(单源) 所有边权都为正数有两种算法: 1.朴素Dijkstra    O(n^2) 2.堆优化的Dijkstra    O(mlogn ...

  5. 007.AcWing 790. 数的三次方根(002)

  6. 蓝桥杯C++ AB组辅导课 第二讲 二分与前缀和 Acwing

    例题 AcWing 789. 数的范围 给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询. 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数). 如果数组中不存 ...

  7. Acwing算法基础课学习笔记

    Acwing学习笔记 第一章 基础算法 快速排序 归并排序 二分查找 前缀和与差分 差分 位运算 离散化 第二章 数据结构 单链表 双链表 栈 队列 单调栈 单调队列 KMP算法 Trie 并查集 堆 ...

  8. [AcWing算法基础课] 一.基础算法

    Algorithms + Data Structures = Programs. --Niklaus Wirth 本章包括排序.二分.高精度.前缀和与差分.双指针算法.位运算.离散化.区间合并等内容 ...

  9. AcWing with LeetCode

    算法目录 0.代码快查 1.基础算法 1.1 二分算法 1.2 双指针算法 1.3 前缀和与差分 1.4 区间和并 1.5 离散化 1.6 位运算 1.7 高精度加减乘除 2.数据结构 2.1 单链表 ...

最新文章

  1. webservice 暴漏接口_webService接口是什么?
  2. gprof 使用例程(转)
  3. @configurationproperties注解给属性赋值
  4. centOS安装Mysql指南
  5. javascript演变史_检查有史以来最著名JavaScript错误之一
  6. C#实现文件二进制存储
  7. Java 多态的特性和概念
  8. 一批工业机械网站交换友情链接
  9. Spark SQL面试题
  10. win10-ubuntu-软件配置-开机root无密码-风扇转速调节
  11. 计算机考研作息时间表,985学长强力推荐考研作息时间表!
  12. 树莓派RaspberryPi Zero W 快速安装tips
  13. 自己整理出来的java实现打印机打印小票
  14. 南京原市长季建业受贿1132万获刑15年
  15. 解决win10通过KMS激活的出现浏览器主页被修改为hao.qquu.com问题
  16. YOLO 系列损失函数
  17. 触发器(四、执行顺序控制)
  18. 深挖用户需求,教你4招搞定精准营销
  19. 基础——MCU的电源,复位和时钟系统(STM32为例)
  20. TPR 教学法是什么?

热门文章

  1. 光斑质心检测之曲线拟合求亚像素位置的三种方式
  2. 解决Latex编译报错:Command `\Bbbk‘ already defined. ...ol{\Bbbk} {\mathord}{AMSb}{“7C}
  3. Scrapy简单入门及实例讲解
  4. Video 视频播放防作弊和禁止下载
  5. 详解Python的装饰器
  6. Spring整合Struts2的两种方式
  7. Django学习笔记5-url
  8. 分析打开hdu 3335 (最小路径覆盖)
  9. 拼多多332亿美金市值超网易,黄铮离目标又近了一步!
  10. 【风马一族_软件】微软卸载工具_msicuu2.exe