离线二维数点

news/2024/9/15 17:46:47/ 标签: 算法, 数据结构, 扫描线, c++

问题:给你一个长度为n的序列,m次询问,每次询问区间[l,r]中小于等于x的元素个数。

对于此种问题,最简单的解法就是扫描线+树状数组。这种问题满足离线性质,可以先把询问存下来,我们对原序列扫描,对于[l,r]的询问,设[1,l-1]中小于等于x的元素个数为a,[1,r]中的为b,则答案就是b-a(类似差分思想)。

#include<bits/stdc++.h>
using namespace std;
const int N=2e6+10;int n,m,a[N],ans[N],tr[N];
struct node{int x,id,tag;
};
vector<node> q[N];//q[i]相当于处理差分(上述所说的b-a)的数组,要弄清它的含义//树状数组基本操作
int lowbit(int x){return x&-x;
}
void add(int x,int v){for(int i=x;i<N;i+=lowbit(i)) tr[i]+=v;
}
int query(int x){int res=0;for(int i=x;i>=1;i-=lowbit(i)) res+=tr[i];return res;
}int main(){scanf("%d %d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&a[i]);//若值域很大的话,还需要离散化for(int i=1;i<=m;i++){int l,r,x;scanf("%d %d %d",&l,&r,&x);q[l-1].push_back(node{x,i,-1});//-aq[r].push_back(node{x,i,1});//b}for(int i=1;i<=n;i++){add(a[i],1);for(int j=0;j<q[i].size();j++){ans[q[i][j].id]+=q[i][j].tag*query(q[i][j].x);//一个询问遍历完后,得到的结果是b-a}}for(int i=1;i<=m;i++) printf("%d\n",ans[i]);return 0;
}


http://www.ppmy.cn/news/1519318.html

相关文章

安达发|户外设备制造APS排程的多层级BOM订单拉动

户外设备制造行业面临的挑战包括多样化的产品线、复杂的产品开发过程以及市场需求的快速变化。为提高生产效率与市场响应速度&#xff0c;采用高级计划排程的多层级BOM订单拉动策略至关重要。 一、户外设备制造行业概述 - 行业背景&#xff1a;户外设备制造行业主要涉及户外休…

Mac 安装Hadoop教程

1. 引言 本教程旨在介绍在Mac 电脑上安装Hadoop&#xff0c;便于编程开发人员对大数据技术的熟悉和掌握。 2.前提条件 2.1 安装JDK 想要在你的Mac电脑上安装Hadoop&#xff0c;你必须首先安装JDK。具体安装步骤这里就不详细描述了。你可参考Mac 安装JDK8。 2.2 配置ssh环境…

缓存Mybatis一级缓存与二级缓存

缓存 为什么使用缓存 缓存(cache)的作用是为了减去数据库的压力,提高查询性能,缓存实现原理是从数据库中查询出来的对象在使用完后不销毁,而是存储在内存(缓存)中,当再次需要获取对象时,直接从内存(缓存)中提取,不再向数据库执行select语句,从而减少了对数据库的查询次数,因此…

Mac/Linux系统matplotlib中文支持问题

背景 matplotlib是python中最常用的数据可视化分析工具&#xff0c;Mac和Linux系统无中文字体&#xff0c;不支持中文显示&#xff08;希望后续可以改进&#xff09;&#xff0c;需要进行字体的下载和设置才能解决。笔者经过实践&#xff0c;发现Mac系统和Linux系统解决方案略…

Windows系统Nginx下载安装配置 运行错误处理

Nginx是一款轻量级的web 服务器/反向代理 服务器。本篇文章主要是nginx的下载安装&#xff0c;处理运行中遇到的问题&#xff0c;配置反向代理。主要分为两部分&#xff1a;下载安装和配置。 目录 1.下载安装 2.nginx配置反向代理 1.下载安装 nginx官网&#xff1a;nginx: …

PHP软件下载-安装-环境配置

.1.下载 下载地址如下 windows.php.net - /downloads/releases/ 安装包如下. .2.安装 可以在D盘或者E盘的根目录创建一个自定义目录。注意文件夹目录中不能包含中文&#xff0c;不能包含空格等特殊字符。 版本说明&#xff1a; (1)ts表示非线程安全版本。这个安装包还指明了…

基于单片机的水箱水质监测系统设计

本设计基于STM32F103C8T6为核心控制器设计了水质监测系统&#xff0c;选用DS18B20温度传感器对水箱水体温度进行采集&#xff1b;E-201-C PH传感器获取水体PH值&#xff1b;选用TS-300B浊度传感器检测水体浊度&#xff1b;采用YW01液位传感器获取水位&#xff0c;当检测水位低于…

华为云征文|部署电影收藏管理器 Radarr

华为云征文&#xff5c;部署电影收藏管理器 Radarr 一、Flexus云服务器X实例介绍1.1 云服务器介绍1.2 应用场景1.3 性能模式 二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 Radarr3.1 Radarr 介绍3.2 Docker 环境搭建3.3 Radarr 部署3.4 Rada…

PowerShell脚本编写:自动化Windows开发工作流程

在现代软件开发中&#xff0c;自动化已经成为提高效率和降低人为错误的重要手段之一。Windows开发者尤其依赖于自动化脚本来简化日常工作流程。PowerShell作为Windows的强大命令行工具和脚本语言&#xff0c;为开发者提供了丰富的功能和灵活性&#xff0c;使得多种开发和管理任…

结构体(2)

有任何不懂的问题可以评论区留言&#xff0c;能力范围内都会一一回答 我们先直接上代码看看结构体的另一种用法 1.匿名结构体 define _CRT_SECURE_NO_WARNINGS #include <stdio.h>//第一个struct struct {char c;int i;double d; }s1;//第二个struct struct {char c;i…

密码管理最佳实践:安全存储与定期更换的艺术

在数字化时代&#xff0c;密码作为我们个人信息与资产安全的第一道防线&#xff0c;其重要性不言而喻。然而&#xff0c;随着网络威胁日益复杂多样&#xff0c;仅仅设置一个强密码已不足以保障安全。良好的密码管理实践&#xff0c;特别是安全存储与定期更换密码&#xff0c;成…

【Python机器学习】NLP词中的数学——向量化

我们将文本转换为基本的数值&#xff0c;虽然只是把它们存储在字典中。我们不使用频率字典来描述文档&#xff0c;而是构建词频向量。在Python中&#xff0c;这可以使用列表来实现&#xff0c;但通常它是一个有序的集合或数组&#xff1a; document_vector[] doc_lengthlen(to…

MATLAB智能优化算法-学习笔记(2)——变邻域搜索算法求解旅行商问题【过程+代码】

旅行商问题 (TSP) 旅行商问题(Traveling Salesman Problem, TSP)是经典的组合优化问题之一。问题的描述是:给定若干个城市以及每对城市之间的距离,一个旅行商需要从某个城市出发,访问每个城市恰好一次,最后回到出发城市,目标是找到一条总距离最短的环路。TSP 是 NP-har…

SQL 注入之 sqlmap 实战

在网络安全领域&#xff0c;SQL 注入攻击一直是一个严重的威胁。为了检测和利用 SQL 注入漏洞&#xff0c;安全人员通常会使用各种工具&#xff0c;其中 sqlmap 是一款非常强大且广泛使用的开源 SQL 注入工具。本文将详细介绍 sqlmap 的实战用法。 一、sqlmap 简介 sqlmap 是一…

安装vmtools管理虚拟机教程

目录 1.什么是vmtools 2.安装教程 2.1删除和安装 2.2文件的复制和粘贴 2.3指令操作 3.检验效果 4.小结 1.什么是vmtools vmtools就是安装之后可以让我们更好的管理我们的虚拟机&#xff1b; 我们可以设置windows和centos共享的文件夹&#xff0c;让该文件夹实现共享&am…

win11,vscode上用docker环境跑项目

1.首先用dockerfile创建docker镜像 以下是dockerfile文件的内容&#xff1a; FROM pytorch/pytorch:1.11.0-cuda11.3-cudnn8-devel LABEL Service"SparseInstanceActivation"ENV TZEurope/Moscow ENV DETECTRON_TAGv0.6 ARG DEBIAN_FRONTENDnoninteractiveRUN apt-…

milvus多个Querynode,资源消耗都打在一个节点上

milvus 查询时的原理 当读取数据时&#xff0c;MsgStream对象在以下场景中创建&#xff1a; 在 Milvus 中&#xff0c;数据必须先加载后才能读取。当代理收到数据加载请求时&#xff0c;会将请求发送给查询协调器&#xff0c;查询协调器决定如何将分片分配到不同的查询节点。…

【原型设计工具评测】Axure、Figma、Sketch三强争霸

在当今的数字化设计领域&#xff0c;选择合适的原型设计工具对于项目的成功至关重要。Axure、Figma 和 Sketch 是目前市场上最受欢迎的三款原型设计工具&#xff0c;它们各具特色&#xff0c;满足了不同用户的需求。本文将对这三款工具进行详细的对比评测&#xff0c;帮助设计师…

苹果笔记本电脑能不能玩游戏?苹果电脑玩游戏咋样?

过去Mac玩不了游戏最大的问题&#xff0c;就是图形API自成一体&#xff0c;苹果既不支持微软的DirectX&#xff0c;同时为了推广自家的Metal图形API&#xff0c;又对OpenGL和Vulkan两大主流的通用API敬而远之。游戏生态、硬件瓶颈让苹果电脑不适合玩游戏。 不过说到底&#xf…

Qt详解QHostInfo

文章目录 前言QHostInfo简介QHostInfo的优势使用流程概述QHostInfo主要函数1. `QHostInfo::lookupHost()`2. `QHostInfo::fromName()`3. `QHostInfo::addresses()`4. `QHostInfo::error()`5. `QHostInfo::errorString()`使用示例更多用法总结前言 QHostInfo 是 Qt 网络模块中的…