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

news2024/11/28 22:02:23

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

  • 一、视频讲解
  • 二、正解代码
    • 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;
			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) {
			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 - 1
    while l1 < r1:
        mid = (l1 + r1) // 2
        if check1(mid, i):
            r1 = mid
        else:
            l1 = mid + 1
    l2, r2 = 0, n - 1
    while l2 < r2:
        mid = (l2 + r2 + 1) // 2
        if check2(mid, i):
            l2 = mid
        else:
            r2 = mid - 1
    if 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.coloradmin.cn/o/1659103.html

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

相关文章

SpringBoot 具体是做什么的?

Spring Boot是一个用于构建独立的、生产级别的、基于Spring框架的应用程序的开源框架。它的目标是简化Spring应用程序的开发和部署过程&#xff0c;通过提供一种快速、便捷的方式来创建Spring应用程序&#xff0c;同时保持Spring的灵活性和强大特性。 1. 简化Spring应用程序开…

【算法刨析】完全背包

完全背包与01背包的区别 01背包对于一个物品只能选择一次&#xff0c;但是完全背包可以选择任意次&#xff1b; 思路 和01背包类似&#xff0c;01背包我们只需要判断选或不选&#xff0c;完全背包也是如此&#xff0c;不同的是&#xff0c;对于这个物品我们在判断选后在增加一…

系统思考—愿景领导

“如果你总是低着头&#xff0c;那么你永远无法看见彩虹。”这句话不仅是对个人的提醒&#xff0c;也极其适用于每一位企业创始人。每位创始人背后不仅有一个梦想&#xff0c;还有一段充满爱的故事。 在作为策略顾问的角色中&#xff0c;我深知聆听的重要性——需要全神贯注地…

LabVIEW的MEMS电容式压力传感器测试系统

LabVIEW的MEMS电容式压力传感器测试系统 针对传统微惯性测量单元(MIMU)标定方法存在的过程繁琐、标定周期长及设备复杂等问题&#xff0c;提出了一种基于LabVIEW软件的MIMU误差参数快速标定方法。通过软件上位机控制小型三轴转台&#xff0c;配合卡尔曼滤波器技术&#xff0c;…

nginx开启局域网https访问

需求 调试webRTC 功能,需要在局域网搭建https发给我协议; 实现 环境 局域网已部署有nginx; 部署可参考专栏文章 已安装Openssl 未安装可以执行 sudo yum install openssl 这个命令进行安装 生成证书和私钥 生成私钥:打开命令提示符或终端窗口,执行以下命令以生成私钥文件…

android基础-服务

同样使用intent来传递服务 oncreate是服务第一次启动调用&#xff0c;onStartCommand是服务每次启动的时候调用&#xff0c;也就是说服务只要启动后就不会调用oncreate方法了。可以在myservice中的任何位置调用stopself方法让服务停止下来。 服务生命周期 前台服务类似于通知会…

jsp 实验12 servlet

一、实验目的 掌握怎样在JSP中使用javabean 二、实验项目内容&#xff08;实验题目&#xff09; 编写代码&#xff0c;掌握servlet的用法。【参考课本 上机实验1 】 三、源代码以及执行结果截图&#xff1a; 源代碼&#xff1a; inputVertex.jsp&#xff1a; <% page lang…

【Python深度学习(第二版)(3)】初识神经网络之深度学习hello world

文章目录 一. 训练Keras中的MNIST数据集二. 工作流程1. 构建神经网络2. 准备图像数据3. 训练模型4. 利用模型进行预测5. (新数据上)评估模型精度 本节将首先给出一个神经网络示例&#xff0c;引出如下概念。了解完本节后&#xff0c;可以对神经网络在代码上的实现有一个整体的了…

springcloud整合网关(springcloud-gateway)

pom引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!-- 服务注册 --><dependency><groupId>com.alibaba.cloud</groupId&…

ALV 排序、汇总

目录 前言 实战 汇总 分类汇总 排序 分类汇总分隔方式&#xff08;仅适用于LIST ALV&#xff09; 完整代码&#xff1a; 前言 在SAP ABAP ALV中&#xff0c;排序和汇总是两个关键特性&#xff0c;用于组织和分析数据显示。 排序 排序功能允许用户根据一个或多个…

Redis是单线程吗?为什么6.0之后引入了多线程?

Redis是单线程吗&#xff1f;为什么6.0之后引入了多线程&#xff1f; Redis 是单线程吗&#xff1f;Redis 单线程模式是怎样的&#xff1f;Redis 采用单线程为什么还这么快&#xff1f;Redis 6.0 之前为什么使用单线程&#xff1f;Redis 6.0 之后为什么引入了多线程&#xff1f…

从Apache HttpClient类库,说一说springboot应用程序中的AutoConfiguration的封装

一、背景 在使用httpclient框架请求http接口的时候&#xff0c;我们往往会需要自定义配置httpclient&#xff0c;而非直接使用。 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>…

Language2Pose: Natural Language Grounded Pose Forecasting # 论文阅读

URL https://arxiv.org/pdf/1907.01108 TD;DR 19 年 7 月 cmu 的文章&#xff0c;提出一种基于 natural language 生成 3D 动作序列的方法。通过一个简单的 CNN 模型应该就可以实现 Model & Method 首先定义一下任务&#xff1a; 输入&#xff1a;用户的自然语言&…

链表第4/9题--翻转链表--双指针法

LeetCode206&#xff1a;给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]示例…

科沃斯梦碎“扫地茅”,钱东奇跌落“风口”

昔日“扫地茅“不香了&#xff0c;科沃斯跌落神坛。 4月27日&#xff0c;科沃斯发布2023年报显示&#xff1a;2023年&#xff0c;科沃斯的营收为155.02亿元&#xff0c;同比增加1.16%&#xff1b;同期&#xff0c;净利为6.10亿元&#xff0c;同比减少63.96%。科沃斯的经营业绩…

HR招聘面试测评,如何判断候选人的创新能力?

创新能力代表着一个人的未来发展潜力&#xff0c;创新能力突出的人&#xff0c;未来的上限就可能更高。而对于一个公司而言&#xff0c;一个具有创新能力的员工&#xff0c;会给公司带来新方案&#xff0c;新思路&#xff0c;对公司的长远发展拥有着十分积极的作用。 而在挑选…

【荣耀笔试题汇总】2024-05-09-荣耀春招笔试题-三语言题解(CPP/Python/Java)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新荣耀近期的春秋招笔试题汇总&#xff5e; &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f49…

解析Spring中的循环依赖问题:初探三级缓存

什么是循环依赖&#xff1f; 这个情况很简单&#xff0c;即A对象依赖B对象&#xff0c;同时B对象也依赖A对象&#xff0c;让我们来简单看一下。 // A依赖了B class A{public B b; }// B依赖了A class B{public A a; }这种循环依赖可能会引发问题吗&#xff1f; 在没有考虑Sp…

信息系统项目管理师0097:价值交付系统(6项目管理概论—6.4价值驱动的项目管理知识体系—6.4.6价值交付系统)

点击查看专栏目录 文章目录 6.4.6价值交付系统1.创造价值2.价值交付组件3.信息流6.4.6价值交付系统 价值交付系统描述了项目如何在系统内运作,为组织及其干系人创造价值。价值交付系统包括项目如何创造价值、价值交付组件和信息流。 1.创造价值 项目存在于组织中,包括政府机构…

kkkkkkkkkkkk564

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 人工智能与机器学习 &#x1f4dd;人工智能相关概念☞什么是人工智能、机器学习、深度学习☞人工智能发…