[蓝桥杯]真题讲解:抓娃娃(思维+二分)

[蓝桥杯]真题讲解:抓娃娃(思维+二分)

  • 一、视频讲解
  • 二、正解代码
    • 1、C++
    • 2、python3
    • 3、Java

一、视频讲解

[蓝桥杯]真题讲解:抓娃娃(思维+二分))

在这里插入图片描述

二、正解代码

1、C++

#include<bits/stdc++.h>
#define x first
#define y second
using namespace std;
typedef pair<int,int> pii;
const int N = 1e5 + 10;
int n, m;int main()
{cin >> n >> m;vector<pii>a(n);vector<double>b(m);for(int i = 0; i < n; i ++) {int L, R; cin >> L >> R;double mid = (L + R) / 2.0;b[i] = mid;}for(int i = 0; i < m; i ++) {cin >> a[i].x >> a[i].y;}sort(b.begin(), b.end());auto check1 = [&](int mid, int i) {return b[mid] >= a[i].x;};auto check2 = [&](int mid, int i) {return b[mid] <= a[i].y;};for(int i = 0; i < m; i ++) {int L = a[i].x, R = a[i].y;int l1 = 0, r1 = n - 1;while(l1 < r1) {int mid = l1 + r1 >> 1;if(check1(mid, i))r1 = mid;elsel1 = mid + 1;}int l2 = 0, r2 = n - 1;while(l2 < r2) {int mid = l2 + r2 + 1 >> 1;if(check2(mid, i))l2 = mid;elser2 = mid - 1;}if(b[l1] >= L && b[l2] <= R) {cout << l2 - l1 + 1 << endl;}else{cout << 0 << endl;}}return 0;
}

2、python3

n, m = map(int, input().split())
tmp = [list(map(int, input().split())) for _ in range(n)]
b = []
for x, y in tmp:b.append ((x + y) / 2.0)a = [list(map(int, input().split())) for _ in range(m)]b.sort()def check1(mid: int, i: int)->bool:return b[mid] >= a[i][0]def check2(mid: int, i: int)->bool:return b[mid] <= a[i][1]for i in range(m):L, R = a[i]l1, r1 = 0, n - 1while l1 < r1:mid = (l1 + r1) // 2if check1(mid, i):r1 = midelse:l1 = mid + 1l2, r2 = 0, n - 1while l2 < r2:mid = (l2 + r2 + 1) // 2if check2(mid, i):l2 = midelse:r2 = mid - 1if b[l1] >= L and b[l2] <= R:print(l2 - l1 + 1)else:print(0)

3、Java

import java.util.Arrays;
import java.util.Scanner;public class Main {public static int n, m;public static double[] b;public static int[][] a;public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();m = sc.nextInt();b = new double[n];a = new int[n][2];for(int i = 0; i < n; i ++) {int L = sc.nextInt();int R = sc.nextInt();double mid = (L + R) / 2.0;b[i] = mid;}for(int i = 0; i < m; i ++) {a[i][0] = sc.nextInt();a[i][1] = sc.nextInt();}Arrays.sort(b);for(int i = 0; i < m; i ++) {int L = a[i][0], R = a[i][1];int l1 = 0, r1 = n - 1;while(l1 < r1){int mid = l1 + r1 >> 1;if(check1(mid, i)) {r1 = mid;}else{l1 = mid + 1;}}int l2 = 0, r2 = n - 1;while(l2 < r2) {int mid = l2 + r2 + 1 >> 1;if(check2(mid, i)){l2 = mid;}else{r2 = mid - 1;}}if(b[l1] >= L && b[l2] <= R) {System.out.println(l2 - l1 + 1);}else{System.out.println(0);}}}private static boolean check1(int mid, int i) {return b[mid] >= a[i][0];}private static boolean check2(int mid, int i){return b[mid] <= a[i][1];}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/701942.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3月份太阳镜行业线上市场销售数据分析

在消费者行为方面&#xff0c;太阳镜不仅仅是视力保护工具&#xff0c;更逐渐成为一种时尚单品。随着人们对健康和美容重视程度的提高&#xff0c;太阳镜作为体现个人风格的单品&#xff0c;其市场需求得到了进一步的推动。此外&#xff0c;全球旅行和旅游业的恢复&#xff0c;…

【链路层和局域网】

文章目录 链路层和局域网网络节点的连接方式数据链路层和局域网链路层导论链路层&#xff1a;上下文链路层服务链路层在哪里实现&#xff1f;适配器通信错误检测奇偶校验校验和&#xff1a;CRC&#xff08;循环冗余校验&#xff09;多点访问链路和协议多路访问协议MAC&#xff…

OpenStack虚拟机管理实例

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 一、OpenStack计算服务 1、什么是Nova 2、Nova所用的虚拟技术 3、Nova的系统架构 4、虚拟机实例化流程 一、示例 1、验证Nova服务 2、试…

国标GB28181协议EasyCVR视频汇聚平台获取设备录像仅展示部分片段的原因排查

国标GB28181协议EasyCVR安防平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流&#xf…

Calendar 366 II for Mac v2.15.5激活版:智能日历管理软件

在繁忙的工作和生活中&#xff0c;如何高效管理日程成为了许多人的难题。Calendar 366 II for Mac&#xff0c;作为一款全方位的日历管理软件&#xff0c;以其独特的功能和优秀的用户体验&#xff0c;成为您的日程好帮手。 Calendar 366 II for Mac支持多种视图模式&#xff0c…

指针(4)

1. 字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* ; 一般使用: int main() {char i a;char* p &i;*p q;printf("%c", i);return 0; } 然后我们看这个例子,这是把⼀个字符串放到pstr指针变量里了吗&#xff1f; 事实上不是,他只是将…

微软推出的Microsoft Fabric 到底是什么?

近期&#xff0c;总有客户问小编&#xff0c;微软推出的 Microsoft Fabric 是什么&#xff1f;这个产品有什么特别之处呢&#xff1f;希望下面这篇文章能为大家解开一些疑惑。 微软Fabric是2023年5月推出的一个数据分析平台&#xff0c;它将关键数据管理和分析工作负载整合到一…

联合新能源汽车有限公司出席2024年7月8日杭州快递物流展

参展企业介绍 青岛联合新能源汽车有限公司&#xff08;简称&#xff1a;联合汽车&#xff09;&#xff0c;是一家专注于纯电动汽车领域创新的科技公司&#xff0c;在国内率先提出车电分离&#xff0c;电池标准化并共享的方案&#xff0c;研发了包含标准电池、电池仓、可换电纯电…

【问题实操】银河高级服务器操作系统实例分享,网卡drop问题分析

1.服务器环境以及配置 系统环境 物理机/虚拟机/云/容器 物理机 网络环境 外网/私有网络/无网络 私有网络 硬件环境 机型 华鲲振宇 TG225B1 处理器 kunpeng 920 内存 1024GB 主板型号 TG225B1 HZKY 整机类型/架构 aarch64 固件版本 6.57 软件环境 具体操作系…

2025年第十一届北京国际印刷技术展览会

2025年第十一届北京国际印刷技术展览会 展览时间&#xff1a;2025年5月15-19日 展览地点&#xff1a;北京中国国际展览中心&#xff08;顺义馆&#xff09; 主办单位&#xff1a;中国印刷及设备器材工业协会中国国际展览中心集团有限公司 承办单位&#xff1a;北京中印协华港国…

Java | Leetcode Java题解之第90题子集II

题目&#xff1a; 题解&#xff1a; class Solution {List<Integer> t new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();public List<List<Integer>> subsetsWithDup(int[] nums) {Arra…

两大DRAM巨头20%产能转给HBM

随着人工智能(AI)需求的激增&#xff0c;全球领先的内存芯片制造商三星(Samsung)和SK海力士(SK Hynix)预计&#xff0c;由于高性能芯片需求不断增长&#xff0c;今年DRAM和高带宽内存(HBM)的价格将保持强劲。据《韩国经济日报》报道&#xff0c;三星和SK海力士已将其超过20%的D…