题目链接;

  http://www.lightoj.com/volume_showproblem.php?problem=1088

题目描述:

  给出一个n位数升序排列的数列,然后q个查询,每个查询问指定的区间覆盖了数列中几个数?

解题思路:

  二分枚举区间的起始点和终点在数列中的位置。

  upper_bound() 返回数列中第一个大于所查询数的位置,或者没有大于所查询的数返回数列长度(越界)

  lower_bound()  返回数列中第一个等于或者大于所查询数的位置,或者没有等于,大于所查询数返回数列长度(越界)

  哦,对对对!还有噢,不能用cin, cout输入,会TLE的,亲试~

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<cmath>
 6 using namespace std;
 7
 8 #define LL long long
 9 #define maxn 100010
10 #define esp 1e-12
11 #define PI acos(-1.0)
12
13 int a[maxn];
14
15 int main ()
16 {
17     int T, L = 1;
18     cin >> T;
19     while (T --)
20     {
21         int n, q;
22
23         scanf ("%d %d", &n, &q);
24
25         for (int i=0; i<n; i++)
26             scanf ("%d", &a[i]);
27         //sort (a, a+n);
28
29         int x, y;
30         printf ("Case %d:\n", L++);
31         while (q --)
32         {
33             scanf ("%d %d", &x, &y);
34             int ans = upper_bound (a, a+n, y) - a;
35             ans -= lower_bound (a, a+n, x) - a;
36
37             printf ("%d\n", ans);
38         }
39     }
40     return 0;
41 }
42 /*
43 4
44 30 40 10
45 12.619429 8.163332 3
46 10 10 3
47 10 10 1
48 */

转载于:https://www.cnblogs.com/alihenaixiao/p/5412905.html

LightOj 1088 - Points in Segments (二分枚举)相关推荐

  1. LightOJ 1088 - Points in Segments 二分

    http://www.lightoj.com/volume_showproblem.php?problem=1088 题意:给出N个点,Q个查询,问在区间内的点数有多少个. 思路:直接在线二分,注意边 ...

  2. 二分枚举+贪心(nyist疯牛)

    点我啊~带你去找它\(^o^)/~ 一开始一点思路都没有,压根不知道它要求的是什么,然后问了一下班长,才明白题目的意思就是,给你N个点,要你找出最优解的C点,言简意赅的即使说区间选点. 思路: 假设两 ...

  3. poj 2455 Secret Milking Machine(二分枚举+最大流)

    题意: 题意:FJ有N块地,这些地之间有P条双向路,每条路的都有固定的长度l.现在要你找出从第1块地到第n块地的T条不同路径,每条路径上的路不能与先前的路径重复,问这些路径中的最长路的最小是多少. 思 ...

  4. CF429E Points and Segments(欧拉回路)

    CF429E Points and Segments 给定n 条线段[li,ri][l_i,r_i][li​,ri​] ,然后给这些线段红蓝染色,求最后直线上上任意一个点被蓝色及红色线段覆盖次数之差的 ...

  5. Codeforces Round #245 (Div. 1) E. Points and Segments 欧拉回路 + 建模

    传送门 文章目录 题意: 思路: 题意: 思路: 考虑对于线段,如何建模. 我们考虑先将线段转换成左闭右开的形式,将左右点连起来. 再考虑每个点,将所有离散化后的点拿出来,每个点都有一个度,现在问题就 ...

  6. HDOJ---2236 无题II[二分枚举+匈牙利]

    无题II Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  7. CF429E Points and Segments

    链接 CF429E Points and Segments 给定\(n\)条线段,然后给这些线段红蓝染色,求最后直线上上任意一个点被蓝色及红色线段覆盖次数之差的绝对值不大于\(1\),构造方案,\(n ...

  8. Brownie Slicing(二分枚举答案)

    描述 Bessie has baked a rectangular brownie that can be thought of as an RxC grid (1 <= R <= 500 ...

  9. POJ 2455 Secret Milking Machine 二分枚举 + 最大流

    题目:http://poj.org/problem?id=2455 题意:给定一张无向图,有n个节点p条边,要求在图中从1到n找到t条路径,并且使这t条路径中的最长边最小,输出这个最小的最长边 思路: ...

  10. ⭐算法入门⭐《二分枚举》简单15 —— LeetCode LCP 18. 早餐组合

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   小扣在秋日市集选择了一 ...

最新文章

  1. VIM 的方向键 h(左)、j(下)、k(上)、l(右)
  2. 【正一专栏】儿时的夏天——似水流年
  3. java面试难吗_面试两个月,整理了今年的最新java面试题,你看行吗?
  4. mybatis 调用存储过程_你真的该进来了解下MyBatis的SQL工作流程了
  5. Windows性能分析器概述(三)
  6. 埃尔米特(Hermite)插值
  7. springboot---集成mybits方法
  8. git 命令详解_再次学习Git版本控制工具
  9. 2019金球奖——梅西
  10. 【51Nod - 1344】走格子 (思维)
  11. pdf英文转换成html网页,PDF文件转换成html网页文件小方法
  12. iOS Coding项目片段记录(五)
  13. 【汇编语言与计算机系统结构笔记14】循环和分支程序设计
  14. 数字孪生将这样改变我们的工作与生活
  15. python 多线程 线程池的四种实现方式
  16. poi创建数据透视表_如何创建数据透视表样式
  17. Verilog无符号除法器-状态机实现
  18. 【用来参考】AndroidQ SystemUI之锁屏加载(上)滑动锁屏
  19. 使用Jekyll搭建免费的个人博客详细教程
  20. 百万互动出圈爆品复盘,小红书品牌如何高效打造爆品?

热门文章

  1. TCP/IP详解--拥塞控制 慢启动 快恢复 拥塞避免
  2. c++ sort 从大到小排序_常用排序算法速度比较
  3. arm linux dma 编程 request_dma,Linux驱动技术技术之一:DMA编程
  4. java技术架构选型方案报告.pdf,来啦,2020开源报告!
  5. 守望先锋 获取cdn配置_英特尔酷睿i5 9400F万金油配置推荐 适合吃鸡 守望先锋
  6. 自动驾驶3-2 安全保证和测试的行业方法 Industry Methods for Safety Assurance and Testing
  7. Alamofire拦截请求AOP,URLProtocol
  8. 算法:Merge k Sorted Lists(合并 k 个排序链表)
  9. 377.组合总和IV
  10. 25. k个一组翻转链表