#题解#洛谷P1496#离散化#

news/2025/11/12 21:52:26/文章来源:https://www.cnblogs.com/Ahui2667d/p/19215582

[传送门](P1496 火烧赤壁 - 洛谷)

分析

  1. a,b的范围在 - 2 ^ 31 到 2 ^ 31 ,直接开数组用桶来记录每一个点是否染色显然MLE / RE

  2. 尝试开数组用桶记录一个个区间段是否染色,如何选择区间段的端点呢?

显然,只需选取每次染色操作区间的端点即可完成我们的要求。

  1. 用x[N]数组从小到大记录每次染色操作区间的端点(需要离线处理)

c[N]数组记录一个个区间段: c [ i ] 为 [ x [ i ] , x [ i + 1 ] ] 的染色情况

  1. 每次染色操作用二分查找 ai 与 bi 在 c [ N ] 中的位置,更新c [ pos a] ----- c [ pos b ]为1即可

代码实现

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int a[N], b[N], x[N], book[N];
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n;cin >> n;int j = 1;for (int i = 1; i <= n; i++){cin >> a[i] >> b[i];x[j++] = a[i];x[j++] = b[i];}sort(x + 1, x + j);for (int i = 1; i <= n; i++){int pos1 = lower_bound(x + 1, x + j, a[i]) - x;//lower_bound是STL中的二分查找,返回的是第一个大于等于a[i]的数的地址int pos2 = lower_bound(x + 1, x + j, b[i]) - x;for (int k = pos1; k < pos2; k++)book[k] = 1;//若book[pos]==1:x[pos]_x[pos+1]染色}int ans = 0;for (int i = 1; i < j; i++ )if (book[i])ans += x[i + 1] - x[i];cout << ans;return 0;
}

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

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

相关文章

20251112 正睿

B对于一个子串,它一定会是两条出边,当且仅当其所有字符相同时达到的节点相同(不妨设这样的字符串为”特殊串“)。 如果不考虑特殊串,答案就是 \(2^n - 1\)。 而只要到达了特殊串,后面就只有 \(|s|\) 种路径了,所…

Polygon:从入门到入门

大概是一份面向新手的 Polygon 算法竞赛出题平台教程。 写在前面 Polygon 是一个自动化程度相当高的算法竞赛出题平台。在开始之前,先简单聊一聊 Polygon 能帮我们干一些什么事情。在 Polygon 上,你可以很方便的进行…

《云操作系统(OpenStack)第二版》学习笔记汇总版-从0开始完成在线安装并为离线安装准备软件包

对着这本书做,发现其中有很多问题,根本做不出来。中间上网查找了不少解决的办法,过程已经不记得了,现在把结果的代码放在这里。 脚本是我写的,一些关键的注释是我写的,不过后来又让豆包重新注释了一遍。 环境规划…

25.11.12 差分约束算法

差分约束算法 一.形式 由一组形如x_i​−x_j≤c​的不等式组成的系统,其中x_i,x_j,是变量,c是常量。 目标是:判断是否有一组 x 值同时满足所有约束;若有,求出一组可行解。 二.思路:转化成最短路问题 1.将x_i​−…

11/12

明天篮球比赛好期待

Linux C/C++ 学习日记(27):KCP协议(三):源码分析与使用示例 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

解决Cursor编辑器无法通过include path识别C++头文件的问题

前两天刚刚安装了cursor。在将一个在vscode中写的项目用cursor打开的时候,我发现项目中包含的一个第三方库TableSession.h无法被cursor识别。 我已经在vscode中配置了C/C++ > Default: Include Path项,包含了这个…

麒麟桌面系统2503安装openjdk21

麒麟桌面系统2503安装openjdk211、更新软件包列表 sudo apt update 2、搜索可用的 OpenJDK 版本 apt search openjdk 可以看到通常会列出多个版本(如 OpenJDK 11、17 等),OpenJDK 21 已经进入默认软件源 3、需要的版…

重组蛋白基础与技术概述

重组蛋白是指通过基因工程技术,在宿主细胞中表达和纯化的特定蛋白质分子。这一技术使得科学家能够大规模获得高纯度的目标蛋白,为生命科学研究提供了重要的工具试剂。重组蛋白技术的核心在于将目标蛋白的编码基因导入…

Day36(6)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01

Maven第32集讲安装Maven文件导入方式 先把对应文件夹拖到资源管理器 然后再让idea识别出这个是maven,记得通过pom.xml打开依赖配置 Maven Repository: Search/Browse/Explore排除依赖命令行传参调用mvn时,要先配置MA…

E. Journey

E. Journey Problem - E - Codeforces \(kruskal\)重构树, 欧拉路径 首先不考虑操作二,那么题目就是问走过所有边回到 \(1\) 的最短路径,如果均仅走过一次,那么整个路径构成欧拉回路,答案为 \(\sum_i w_i\) ,否则…

Dynamics 365 Field Service跨站脚本欺骗漏洞分析

本文详细分析了CVE-2025-62210漏洞,这是一个影响Dynamics 365 Field Service在线版的跨站脚本安全漏洞,允许授权攻击者通过网络进行欺骗攻击,CVSS评分为8.7分的高危漏洞。概述 CVE-2025-62210是Dynamics 365 Field …

Linux优秀的系统--信号(3--信号的保存、阻塞)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:SQL提数与数据分析指南

深入解析:SQL提数与数据分析指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

大家来写 ICPC 西安(没写完)

wait感觉是好题啊,写一下,不过我好像把两场当成同一场了说是。 开题顺序:难度排序。P14444 [ICPC 2025 Xian Practice] Great Indices最开始读错题了,被普及-的题目卡了,我很唐。 考虑至多有一个不是因数,因此我…

[译] 省略 Async 与 Await

https://blog.stephencleary.com/2016/12/eliding-async-await.html当开发者掌握了 async 和 await 的基础知识并能熟练运用后,常会遇到一个设计疑问:如果可以移除 async 和 await 关键字,是否应该这样做?在很多场…

你的代码正在腐烂!你的团队正走在死亡螺旋上:技术债务积累的5个危险信号!

本文深度解析技术债务管理之道,指出技术债务需合理管理而非完全消除,介绍了技术债务的四大类型(设计、代码、测试、文档),以及识别评估模型与偿还策略,并提供了实战案例与预防措施。关注我,掌握企业数字化/信息…

iverilog、gtkwave工具链接

最近在尝试TRAE生成代码,工具生成代码后会检查系统中是否有仿真工具,安装iverilog+gtkwave,方便TRAE调用检查生成的代码。 链接:https://bleyer.org/icarus/****************************************************…