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

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

  • 一、视频讲解
  • 二、正解代码
    • 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.mzph.cn/diannao/12328.shtml

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

相关文章

fastapi+vue实现导入Excel表格的功能

1.前端部分 1.1 api设置 // 导入用户 export function uploadUser(data) {const formData new FormData();formData.append(file, data); // data 是从文件上传事件中获取的文件对象return request({url: /users/upload,method: post,headers: {Content-Type: multipart/fo…

前端CSS3基础1(新增长度单位,盒子模型,背景,边框,文本属性,渐变,字体,2D变换,3D变换)

前端CSS3基础1&#xff08;新增长度单位&#xff0c;盒子模型&#xff0c;背景&#xff0c;边框&#xff0c;文本属性&#xff0c;渐变&#xff0c;字体&#xff0c;2D变换&#xff0c;3D变换&#xff09; CSS3 新增长度单位CSS3 新增盒子模型相关属性box-sizing怪异盒模型box-…

实现简易版Vuex

从实现一个简单的 Vuex 类来了解 Vuex 的工作原理。 实现思路 Vuex 下拥有 install 方法和 Store 类。即创建一个 Vuex 的模块&#xff0c;这个模块导出 install 方法和 Store 类。 install 方法 Vuex 是 Vue 的一个插件&#xff0c;所以需要实现 Vue 插件约定的 install 方…

Linux:ftp文件传输实验

Linux&#xff1a;ftp文件传输实验 实验实现 # 安装对应软件 [rootserver120 ~]# dnf install vsftpd -y [rootserver120 ~]# dnf install lftp -y# 关闭防火墙以及开启服务 [rootserver120 ~]# systemctl disable --now firewalld [rootserver120 ~]# systemctl enable --no…

ambari-server高可用配置方案

制品 https://kdocs.cn/l/cie4hSgvUunX 前置条件 环境需要支持VRRP协议 环境需要配置好yum源 变更影响面 变更不会影响其他组件 配置lb(需要客户侧配置并提供LB地址) 转发方式选择 主备 监听端口为8080、8440、8441 协议为tcp 后端监听选择kde-offline1为主

【RAG 论文】UPR:使用 LLM 来做检索后的 re-rank

论文&#xff1a;Improving Passage Retrieval with Zero-Shot Question Generation ⭐⭐⭐⭐ EMNLP 2022, arXiv:2204.07496 Code: github.com/DevSinghSachan/unsupervised-passage-reranking 论文&#xff1a;Open-source Large Language Models are Strong Zero-shot Query…

【HR】阿里三板斧--20240514

参考https://blog.csdn.net/haydenwang8287/article/details/113541512 头部三板斧 战略能不能落地、文化能不能得到传承、人才能不能得到保障。 头部三板斧适用的核心场景有三个&#xff1a;一是战略不靠谱&#xff1b;二是组织效率低、不聚心&#xff1b;三是人才跟不上。对…

c++ 各版本特性介绍

c C是一种高级编程语言&#xff0c;以其强大的功能、灵活性和高效性而闻名。它是由Bjarne Stroustrup在20世纪80年代初期在贝尔实验室开发的&#xff0c;作为C语言的一个扩展。C不仅包含了C语言的所有特性&#xff0c;还引入了面向对象编程&#xff08;OOP&#xff09;的概念&…

基于Vue3+ElementPlus项目,复制文字到剪贴板功能实践指南,揭秘使用js-tool-big-box工具库的核心优势

在前端开发项目中&#xff0c;很多时候有那么一个场景&#xff0c;就是要求将一段文案复制下来&#xff0c;这段文案可能是一串很长的id&#xff0c;可能是一条命令语句&#xff0c;可能是一小段文案&#xff0c;复制到剪贴板上。这样有利于用户复制到其他地方去&#xff0c;使…

自然资源-城乡规划行业未来二十年将何去何从?

自然资源-城乡规划行业未来二十年将何去何从? 城乡规划行业未来风口在以下几个方向&#xff0c;看好啦&#xff01;紧跟国家发展战略和政策背景。 1.大数据的城市规划应用。 包含:公共数据平台的搭建CIM&#xff0c;数据赋能治理&#xff0c;城市规划中大数据应用的研究 等…

微软必应bing国内官方代理商,广告账户如何开户?

微软必应Bing作为全球知名的搜索引擎之一&#xff0c;其广告平台为众多企业提供了广阔的市场空间和精准的推广机会。对于中国内地的企业而言&#xff0c;通过必应Bing开展国内广告推广不仅能够触及更广泛的潜在客户群体&#xff0c;还能有效提升品牌影响力。通过微软必应Bing国…

【算法作业】均分卡牌,购买股票

问题描述 John 有两个孩子&#xff0c;在 John病逝后&#xff0c;留下了一组价值不一定相同的魔卡&#xff0c; 现在要求你设计一种策略&#xff0c;帮John的经管人将John的这些遗产分给他的两个孩子&#xff0c;使得他们获得的遗产差异最小&#xff08;每张魔卡不能分拆&#…

搜索引擎的设计与实现(三)

目录 5 系统详细实现 5.1实现环境配置 5.2功能实现 5.2.1 建立索引 5.2.2 文件搜索实现 5.2.3 数据库的连接配置 5.2.4 数据库搜索实现 5.2.5 后台数据编辑实现 前面内容请移步 搜索引擎的设计与实现&#xff08;二&#xff09; 免费源代码&毕业设计论文 搜索…

git-删除workspace.xml的跟踪

问题描述 .gitignore 文件内容如下&#xff1a; .pyc *.pyc user_files/ .vscode/ __pycache__//.idea/misc.xml /.idea/modules.xml /.idea/inspectionProfiles/profiles_settings.xml /.idea/inspectionProfiles/Project_Default.xml /.idea/batrp_webbackend-server-dev.i…

NARUTO 复现记录

1 环境配置 下载项目&#xff0c;一定要 git 下载全项目&#xff0c;下载完后要检查third_parities 里面的coslam和neural_slam_eval 文件全不全。 git clone --recursive https://github.com/oppo-us-research/NARUTO.git 环境配置 注意 bash scripts/installation/conda…

番外篇 | 利用PyQt5+YOLOv5来搭建目标检测系统(附可视化界面+功能介绍+源代码)

前言:Hello大家好,我是小哥谈。PyQt5是一个Python绑定的Qt库,是用于创建图形用户界面(GUI)和其他应用程序组件的工具包。PyQt5提供了许多GUI元素,如按钮、文本框、标签等,也提供了许多Qt的功能,如网络、数据库、XML等。通过PyQt5可以在Python中使用Qt的丰富功能和强大的工…

克服亏损的负面影响 学学现货白银止损的方法

一个多月以前&#xff0c;现货黄金的上涨还十分强劲&#xff0c;一度还逼近历史的高位30大关。但是我们看近半个月以来&#xff0c;现货白银价格出现了调整。很多在高位买入的投资者都承受了较大的亏损&#xff0c;这时候就凸显出了现货白银止损的作用。如果投资者能够通过近期…

Git 基础使用(2) 分支管理

文章目录 分支概念分支使用查看分支分支创建分支切换分支合并合并冲突分支删除 分支管理快进模式分支策略内容保存错误处理 分支概念 &#xff08;1&#xff09;分支概念 Git分支是指在版本控制系统Git中&#xff0c;用来表示项目的不同工作流程或开发路径的一个重要概念。通过…

【cmake】Windows 环境下编译第三方依赖源码(以编译Xerces库为例)

第三方依赖源码的编译分为两种&#xff0c;一种是使用 Configure 脚本编译&#xff0c;另一种是使用 CMakeLists.txt 编译。Xerces 3.2.3 的编译方式是 CMakeLists.txt 脚本编译。 必要软件&#xff1a; CMake &#xff08;CMake | Download&#xff09;Visual Studio 2019&a…

前端AJAX讲解

目录 1.AJAX是什么&#xff1f; 2.异步交互和同步交互 3.AJAX常见应用情景和优缺点 4.AJAX的优缺点 5.AJAX发送异步请求&#xff08;四步操作&#xff09; 6.经典案例 1.AJAX是什么&#xff1f; AJAX即“Asynchronous JavaScript and XML”&#xff08;异步的JavaScript与…