恰好被k个区间覆盖的点的数量

news/2025/12/10 21:13:46/文章来源:https://www.cnblogs.com/mubai666/p/19333206

1 - 模型描述

在数轴上,有 \(n\) 个区间,对于第 \(i\) 个区间覆盖的区间为 \([l_i, r_i]\) ,现在你要求出所有 \(k \in [1, n]\),恰好被 \(k\) 个区间覆盖的点的个数。

2 - 做法

对于模型的描述,很容易想到用差分解决。但是通常题目的数据范围不适合常规差分,如 \(1 \leq l_i, r_i, \leq 10^{18}\)。因此考虑离散化。用 \(map\) 来记录每一个端点的差分值,在读取区间 \([l, r]\) 的时候进行如下操作:

\[event[l]+1, \quad event[r+1]-1 \]

我们用扫描线来扫描出现过的每一个端点,同时使用变量 \(sum\) 来记录当前覆盖区间的数量,\(last\) 来记录上一个扫描到的端点的位置。

每当我们扫描到一个端点 \(i\),我们先更新答案 \(ans[sum] = ans[sum] + (i - last)\),再更新当前覆盖区间的数量 \(sum = sum + diff[i]\).

3 - 例题 - CF1000C

题目大意:

给你 \(n\) 个区间,求被这些区间覆盖层数为 \(k\) \((1 \leq k \leq n)\) 的点的个数。

输入格式:

第一行一个整数 \(n\) \((n \leq 2∗10^5)\)

以下 \(n\) 行,每行有两个整数,即这个区间的左右端点 \(l,r\) \((0 \leq l \leq r \leq 10^{18})\)

输出格式:

\(n\) 个整数,即每个被覆盖层数对应的点的个数。

思路:

本题思路与模型处理方式基本一致,即:

  • 对每个区间的端点进行离散化的差分处理。
  • 扫描每一个端点,在加上端点上的差分值的同时维护答案。

参考代码:

#include <bits/stdc++.h>
using namespace std;#define endl '\n'
#define i64 long longint main() {ios::sync_with_stdio(false);cin.tie(nullptr), cout.tie(nullptr);int n;cin >> n;map<i64, int> event;for (int i = 1; i <= n; i ++ ) {i64 l, r;cin >> l >> r;event[l]++, event[r + 1]--;}i64 sum = 0, last = -1;vector<i64> ans(n + 1);for (auto& [cur, diff] : event) {ans[sum] += cur - last;sum += diff;last = cur;}for (int i = 1; i <= n; i ++ ) cout << ans[i] << ' ';
}

4 - 练习

ABC221D: https://atcoder.jp/contests/abc221/tasks/abc221_d

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

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

相关文章

Day59(29)-F:\vs_ai_work\vue-tlias-management

ElementPlus员工管理查询清空<div class="container"><el-button type="primary" @click="addEmp">+新增员工</el-button><el-button type="danger" @c…

windriver 第5章:USB 概述

本章将探讨通用串行总线(USB)的基本特性,并介绍 WinDriver USB 的功能与架构。ℹ️ 说明 本章中提及的 WinDriver USB 工具包,均指用于开发 USB 主机驱动程序的标准 WinDriver USB 工具包。5.1 USB 简介 USB(通用…

Airflow - from airflow import DAG and from airflow.sdk import DAG, which one is better?

Airflow - from airflow import DAG and from airflow.sdk import DAG, which one is better?Short answer: ✔ from airflow.sdk import DAG is better for Airflow 3 (and later). ✔ from airflow import DAG is t…

langchain工具上下文

在langchain Tools工具的基础使用中,工具方法的参数是由大模型生成schema来调用的。除了schema定义的参数外,tools还有一类特定的内置参数:runtime。 runtime是一个内部定义好的ToolRuntime类型结构,里面有state、…

货代邮件自动化处理系统设计文档

货代邮件自动化处理系统设计文档1. 项目概述 1.1 背景 作为一家货代公司,业务核心在于接收客户的“托书”(Booking Note),录入订单系统,并进行后续操作。目前该过程依赖人工查阅邮件、解析文档和录入数据,效率低…

吐血整理!新房全包装修,性价比之王大盘点 - 品牌测评鉴赏家

吐血整理!新房全包装修,性价比之王大盘点一、2025 家装市场现状:投诉激增,选对公司就是省钱 (一)行业痛点直击 2024 年,上海市消保委数据如同一记警钟,在平静的家装湖面掀起惊涛骇浪。当年,上海家装投诉量飙升…

DSU on array

8 - 3DSU on array 是一种把并查集用于一维数组上的技巧,用来维护数组中下一处未处理的位置。简单的说,如果某个位置 \(i\) 已被处理,我们希望下一次访问它时自动跳转到下一个没有被处理的位置 \(j\)。 1 - 适用场景…

Resources资源同步加载、异步加载、卸载

1. Unity Resources 同步加载资源(Resources.Load)Unity 提供了 Resources 文件夹和 API 来动态加载资源,可以在运行时通过代码获取所需资源,避免繁琐的拖拽操作。1.1 作用动态加载 Resources 文件夹下指定路径的资…

新房全包装修怎么选?这 3 类高性价比公司帮你省心省钱(附 2025 口碑红榜) - 品牌测评鉴赏家

新房全包装修怎么选?这 3 类高性价比公司帮你省心省钱(附 2025 口碑红榜)装修避坑必看:42%纠纷因合同漏项,60㎡两房9.8万全包还省15㎡空间。选装修公司认准自有工人、零增项合同和10年水电质保,盛世和家等品牌用…

无参和有参URL的定义

1.无参URL 就是正常的@app.route("/profile") @app.route(/profile) def profile():return 这是profile页面2.有参URL 2.1.path传参,怕死传参 @app.route("/blog/<int:blog_id>") @app.rout…

线段的最少分组

8 - 21 - 模型描述 在数轴上,有 \(n\) 条线段,对于第 \(i\) 条线段覆盖的区间为 \([l_i, r_i]\) ,现在你需要对这 \(n\) 条线段按如下的规则进行分组:同一组的线段之间互不重叠,即对于同一组的线段 \(i, j\) 存在…

【Ubuntu】系统下VScode配置ESP-IDF插件esp-clang和Python 3报错问题

引言 使用 Ubuntu 系统配置 ESP32 的 VScode 环境的时候遇到了两个问题: 一、 Command failed: /usr/bin/python3 /home/shf/esp32/ esp-idf/tools/idf_tools.py install esp-clang二、 non zero exit code 1 ESP-IDF…

新房装修不迷路!十大公司深度评测,盛世和家登顶榜首 - 品牌测评鉴赏家

新房装修不迷路!十大公司深度评测,盛世和家登顶榜首还记得拿到新房钥匙的那一刻吗?指尖触碰到冰凉金属的瞬间,脑海里早已勾勒出沙发摆放的位置、阳台养花的角落,连孩子房间的卡通壁纸都有了清晰模样。可这份喜悦没…

windriver 第6章:使用DriverWizard

本章介绍WinDriver的DriverWizard工具及其硬件诊断和驱动程序代码生成功能。 6.1 概述 DriverWizard(包含在WinDriver工具包中)是一款图形用户界面(GUI)工具,主要面向硬件和驱动程序开发的两个核心阶段: 硬件诊断…

vue 中支持不定高的虚拟滚动的表格 vxe-table 的使用,动态高度虚拟列表高性能表格

vue 中支持不定高的虚拟滚动的表格 vxe-table 的使用,动态高度虚拟列表高性能表格,项目的中有些场景不仅需要加载大数据量的表格,同时也要支持不固定高度,同时需要自适应行高的表格,这时候 vxe-table 就排上用场了…

windriver 第4章:PCI Express 概述

4.1 概述 PCI Express(PCIe)总线架构(前身为3GIO,即第三代输入/输出技术)由英特尔联合IBM、戴尔、康柏、惠普和微软等领先企业共同推出,旨在未来成为个人计算机输入/输出(PC I/O)的主流标准。 相较于标准PCI 2…

GROMACS 2025.4安装(非root用户)

一、准备条件 centos7只能安装24年miniconda,再升级 1. 安装最新版本的C和C++编译器。 conda activate conda install -c conda-forge cxx-compiler c-compiler 2. CMake 3.28或更高版本。 conda install cmake 3. 安…

MATLAB R2025a免费下载安装教程与激活教程超详细图文步骤(附安装包)

目录一、MATLAB R2025a介绍二、MATLAB R2025a下载安装包三、MATLAB R2025a安装教程(10步,每步带重点)1. 解压安装包——路径别带中文!2. 进Setup文件夹找安装程序3. 右键“管理员运行”——权限必须够4. 选“我有文…

解码string类——字符串处理

String类的实现与功能 核心特性设计目标:解决C风格字符串的内存管理问题,提供面向对象的字符串操作。 底层实现:基于basic_string<char>模板类。实现详解 #include <cstring> #include <stdexcept&g…

新房装修公司大揭秘!一文教你避坑选好公司 - 品牌测评鉴赏家

新房装修公司大揭秘!一文教你避坑选好公司刚拿到新房钥匙的你,是不是既期待打造梦想中的家,又被 “选哪家装修公司” 的问题难住?怕遇到偷工减料的 “套路王”,担心预算超支像 “无底洞”,还怕工期拖延影响入住……