1800*D. Nested Segments(数组数组&&离散化)

2023-10-29

 解析:

        按照右端点进行排序,这样某个区间包含的区间只能是在其前面的区间中。

        所以维护左端点 x 的出现次数,这样我们在查询某个区间 x,y 的时候,只需要求 x-y 之间包含多少个前面区间的 x 即可(前缀和),因为 前面区间的 y 显然小于当前区间的 y。

        树状数组维护,可以 logn 内求出前缀和。

        其中存在负数,所以需要离散化。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+5,M=4e5+5;
int n,m,res[N];
int b[M],c[M],idx;
struct node{
	int id,x,y;
	bool operator<(const node& t)const{
		return y==t.y?x>t.x:y<t.y; 
	}
}a[N];
int lowbit(int x){return x&-x;}
void add(int k){
	for(int i=k;i<=m;i+=lowbit(i)) c[i]+=1;
}
int sum(int x,int y){
	int ans=0;
	for(int i=y;i;i-=lowbit(i)) ans+=c[i];
	for(int i=x-1;i;i-=lowbit(i)) ans-=c[i];
	return ans;
}
map<int,int>mp;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		int x,y;
		scanf("%d%d",&x,&y);
		a[i]={i,x,y};	
		b[++idx]=x;
		b[++idx]=y;
	}
	sort(b+1,b+idx+1);	//排序及其离散化 
	m=unique(b+1,b+idx+1)-(b+1);
	for(int i=1;i<=m;i++) 
		mp[b[i]]=i;		//映射 
	sort(a+1,a+n+1);
	for(int i=1;i<=n;i++){
		int x=a[i].x,y=a[i].y;
		res[a[i].id]=sum(mp[x],mp[y]);	//查询在 x-y区间内的前面的 x 
		add(mp[x]);		//将自己的 x 加入数组数组 
	}
	for(int i=1;i<=n;i++) printf("%d\n",res[i]);
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1800*D. Nested Segments(数组数组&&离散化) 的相关文章

  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • 使用 C# 登录《我的世界》

    我正在尝试为自己和一些朋友创建一个简单的自定义 Minecraft 启动器 我不需要启动 Minecraft 的代码 只需要登录的实际代码行 例如 据我所知 您过去可以使用 string netResponse httpGET https
  • GetType() 在 Type 实例上返回什么?

    我在一些调试过程中遇到了这段代码 private bool HasBaseType Type type out Type baseType Type originalType type GetType baseType GetBaseTyp
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • JNI 将 Char* 2D 数组传递给 JAVA 代码

    我想从 C 代码通过 JNI 层传递以下指针数组 char result MAXTEST MAXRESPONSE 12 12 8 3 29 70 5 2 42 42 在java代码中我写了以下声明 public static native
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 使用 GCP 的数据存储区时如何区分代码是在模拟器中运行还是在 GKE 中运行

    按照中给出的说明进行操作后 我不确定是否遗漏了任何内容https cloud google com datastore docs tools datastore emulator https cloud google com datasto
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • C++ int 前面加 0 会改变整个值

    我有一个非常奇怪的问题 如果我像这样声明一个 int int time 0110 然后将其显示到控制台返回的值为72 但是当我删除前面的 0 时int time 110 然后控制台显示110正如预期的那样 我想知道两件事 首先 为什么它在
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有

随机推荐

  • 智能制造MES系统的主要内容有哪些?系统有什么作用?

    制造企业非常关注实现生产过程中的实时采集 提高生产排产的效率 实现制造过程的追溯 提升工人与设备的绩效 保证产品质量等问题 调研数据显示 92 的企业渴望加强对生产过程的控制 大多数制造企业已经逐渐清醒地认识到生产技术领先和制造过程管理高效
  • Linux操作系统常见面试题(持续更新)

    1 熟悉命令netstat tcpdump ipcs ipcrm netstat 检查网络状态 tcpdump 截获数据包 ipcs 检查共享内存 ipcrm 解除共享内存 2 共享内存段被映射进进程空间之后 存在于进程空间的什么位置 共享
  • uni-app在真机调试下兼容ethers的方法

    目录 一 安装ethers 二 renderjs 三 注意事项 uni app开发跨平台应用程序 项目搭建主要前端框是Uni app Vue3 TS Vite 项目搭建参考文章Uni app Vue3 TS Vite 创建项目 Hbuild
  • tac_plus安装和配置

    安装 将 http download csdn net detail wingking84 5814131 解压 PROJECTS放到 root下 进入PROJECTS然后执行 make make install 配置 将参考配置文件 ht
  • 英国加密货币流动性提供商获得金融监管机构批准

    点击上方 蓝色字 可关注我们 暴走时评 根据金融行为监管局 FCA 的注册记录 英国加密货币流动性创业公司B2C2 OTC Ltd 已于1月30日获得该国FCA的批准 B2C2将提供电子场外交易 OTC 可以向合格交易方和专业客户提供差价合
  • CUDA——SM中warp调度器调度机制&&访存延迟隐藏

    SM中warp调度器调度机制 访存延迟隐藏 核函数中并不是所有线程一起启动执行的 核函数的执行是以线程束 warps 作为单位 warps的执行由warp调度器进行调度 一个调度器只能调度一个warp去执行指令 一个warp里的所有线程几乎
  • Symbol 'ANDROID_LOG_DEBUG' could not be resolved

    调试JNI代码的时候 加入了调试函数 include
  • 如何构造LL(1)文法预测分析表

    这类题型也经常在考试中出现 一般是与判断是否为LL 1 文法放在一起进行考察 这类题目该怎么去做呢 1 求出每个非终结符的FIRST集和FOLLOW集 在上一篇文章中已经详细介绍 2 构造预测分析表 横坐标是所有的非终结符 纵坐标是所有的终
  • 【计算机视觉

    文章目录 一 STPLS3D 二 DigestPath 三 ImageNet S ImageNet Semantic Segmentation 四 OpenEDS 五 RELLIS 3D 六 SUIM Segmentation of Und
  • React解密:React Hooks函数之useEffect和useLayoutEffect

    useEffect是react hooks的又一个重要的hooks函数 Effect hooks允许你在组件中执行副作用操作 数据获取 设置订阅以及手动更改 React 组件中的 DOM 都属于副作用 不管你知不知道这些操作 或是 副作用
  • js事件的绑定方式

    我们现在绑定的事件都是 onxxxx的方式 这个是DOM0级的事件绑定方式 注 这个方式不是很好 弊端 一旦写了第二个事件 那么第一个就会被覆盖 案例 var oDiv document querySelector div oDiv onc
  • gethup.sh

    docker exec it geth cluster1 bin bash geth datadir data0 networkid 779977 console root 85547cf26bca ethutil cat gethup s
  • 某易云音乐JS逆向案例

    某易云音乐参数破解 目标 aHR0cHM6Ly9tdXNpYy4xNjMuY29tLyMvc2VhcmNoL20vP3M9JUU2JTg4JTkwJUU5JTgzJUJEJnR5cGU9MQ 某易云音乐是大家喜爱的音乐平台 有小伙伴问我 这
  • 网关的理解

    一 什么是网关 网关 Gateway 又称网间连接器 协议转换器 网关在传输层上以实现网络互连 是最复杂的网络互连设备 仅用于两个高层协议不同的网络互连 二 如何来理解网关 大家都知道 从一个房间走到另一个房间 必然要经过一扇门 同样 从一
  • Qt自绘控件之扇形统计图

    首先绘制区域扇形需要先注意一下几点 QPainter中绘制完整的圆等于5760 16 360 此处数值用于计算每一块扇形区域所显示的 需要了解一下扇形二等分线的计算方法 要注意做坐标原点转换 此处为屏幕分辨率自适应 const qreal
  • Keil 中出现“encountered an improper argument” 解决办法

    Keil 中出现 encountered an improper argument 解决办法 出现这种情况就是因为目录文件下带有中文路径 不要弄成中文路径就可以解决了
  • HyperledgerFabric资产案例链码实例

    案例分析 功能 用户开户和销户 资产登记 资产上链 与具体的用户绑定 资产转让 资产所有权变更 查询功能 用户查询 资产查询 资产变更的历史查询 业务实体 用户 名字 身份证 标识 资产列表 资产 名字 标识 特殊属性列表 车 排量 品牌
  • linux基础操作命令符(下)

    linux基础操作命令符 上 linux笔记查询 关于用户 用户的管理 用户组的管理 权限的管理 SSH 解决等待缓存 无法获得锁问题 关于ping命令 ssh 远程连接 ssh远程拷贝的命令 查看linux本地配置 查看磁盘文件目录 df
  • 亚马逊+纽约大学开源图神经网络框架DGL:新手友好,与主流框架无缝衔接

    量子位 授权转载 公众号 QbitAI 最近 纽约大学 纽约大学上海分校 AWS上海研究院以及AWS MXNet Science Team共同开源了一个面向图神经网络及图机器学习的全新框架 命名为Deep Graph Library DGL
  • 1800*D. Nested Segments(数组数组&&离散化)

    解析 按照右端点进行排序 这样某个区间包含的区间只能是在其前面的区间中 所以维护左端点 x 的出现次数 这样我们在查询某个区间 x y 的时候 只需要求 x y 之间包含多少个前面区间的 x 即可 前缀和 因为 前面区间的 y 显然小于当前