P1496 火烧赤壁(离散化)

news/2025/2/12 13:34:58/文章来源:https://www.cnblogs.com/gxjcnblogs/p/18711413


这是我的第一道离散化题,虽然只是一道普及-的题,但我理解起来还是有点吃力,看完视频后我我觉的离散化,就是将一堆数据用他们的相对大小表示 例如 1,99,100,1000,可以表示为1,2,3,4.
55 100 300 1,可以表示为 2 3 4 1;这道题目就是先把各个区间的两个端点存储到c数组,对c进行排序后中然后用二分查找各个数据在c中的相对位置

这里要注意,标记f数组时应该<b[i],应为我们是用后一个数减前一个数,如果不这样的话,例如,1 5,8 10,两个区间,答案就会加上8-5这是不正确的

#include<iostream>
#include<set>
#include<map>
#include<algorithm>
#include<vector>
#include<cmath>
#include<climits>
#include<cstring>
#define int long long
const int N = 1e6+5;
using namespace std;
char* p1, * p2, buf[100000];
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
int read()
{int x = 0, f = 1;char ch = nc();while (ch < 48 || ch>57){if (ch == '-')f = -1;ch = nc();}while (ch >= 48 && ch <= 57)x = x * 10 + ch - 48, ch = nc();return x * f;
}
int a[N], b[N], c[N],f[N];
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n;cin >> n;vector<int>v;int k = 0;for (int i = 1; i <= n; i++) {cin >> a[i] >> b[i];c[++k] = a[i];c[++k] = b[i];}sort(c + 1, c + 1 + 2 * n);for (int i = 1; i <= n; i++) {a[i] = lower_bound(c + 1, c + 1 + 2 * n, a[i])-c;b[i] = lower_bound(c + 1, c + 1 + 2 * n, b[i]) - c;for (int j = a[i]; j < b[i]; j++)f[j] = 1;}int cnt = 0;for (int i = 1; i < 2 * n; i++) {if (f[i] == 1)cnt += c[i+1] - c[i];}cout << cnt;return 0;
}

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

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

相关文章

[办公自动化]deepseek解决不了的问题,“帮忙找到丢失的word文件”

这两天遇到两个同事,问的问题都差不多:能不能帮她找到丢失的word文档。 案例1: 背景: 这个同事描述的是这样的,正在写一份文档,结果发现没有保存,能不能帮忙找找。毕竟写了大半天的,很多词汇费劲脑子想出来的。 看了看,计算机上装的是office2013。windows 10计算机。 …

C#/.NET/.NET Core技术前沿周刊 | 第 25 期(2025年2.1-2.9)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿、推荐或自荐优质文章、项目、学习资源等…

Windows系统端口被占用解决方案

在 Windows 系统中,如果某个端口被占用,可能会导致应用程序无法正常启动或连接。以下是一些解决方案,可以帮助你查找和解决端口被占用的问题查找占用端口的进程打开命令提示符按 Win + R,输入 cmd,然后按 Enter查找占用端口的进程netstat -ano | findstr :"端口号&qu…

智能化员工工作状态管理:AI视频监控在大型商场的技术方案介绍(part4)

为提升商场或企业的运营效率,商家需要通过AI对员工的行为进行实时监测,不仅能提升运营效率,还能优化资源配置、加强安全管控、提高员工工作表现,从而推动企业持续、健康的发展。 具体需求包括 1、离岗监测:识别员工是否擅自离开工作岗位。 2、工作服及胸卡佩戴:检测员工是…

立体系统(Stereo Systems)总结

上一讲中我们介绍了对极几何的相关知识,在这一讲开头我们先回顾一下平行图像平面的对极几何。 平行图像平面的对极几何(Parallel image planes)在这种情况下,对应点的极线是水平的,光心连线与图像平面的交点(极点)在无穷远处,并且在这种平行配置下,同一个三维点在两个…

DeepSeek AI 满血版功能集成到WPS或Microsoft Office中

DeepSeek AI集成到 WPS或Microsoft Office中, 由于deepseek被攻击或者非常繁忙导致超时的服务器,所以可以用硅基流动部署的DeepSeek 。当然用官网的也可以。使用 OfficeAI 插件集成(wps为例): 下载并安装 OfficeAI 插件:从可靠的软件下载平台https://www.office-ai.cn/,获…

第二章:计算机的构成

复习第一章:需要一台计算机,在研究其组成的方向上进行努力TL;DR计算机由四大核心部分组成:输入设备、输出设备、存储器和运算器 计算机内部采用二进制表示所有信息,包括数字、文字和指令等等 冯诺依曼体系结构是现代计算机的基础框架正文在了解了计算机的诞生历史后,我们来…

第一课 泰坦尼克号预测

目录导入数据将训练数据与测试数据合并查看数据描述性统计查看是否有异常值查看特征与标签之间的关系查看标签是否有偏态数据预处理填充缺失值特征工程特征创造同组识别筛选子集建模 导入数据 将训练数据与测试数据合并 查看数据 描述性统计查看是否有异常值看看各个数据是否偏…

美团面试:手机扫描PC二维码登录,底层原理和完整流程是什么?

本文原文链接 文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 …

docker官网镜像无法下载问题解决

亲测可用,这个方法是由技术爬爬虾大佬提供,简单地说就是通过github上的docker_image_pusher项目,将国外docker镜像转存到阿里云私人仓库。 此方法需要你有一个github账号,有一个阿里云账号。注册方法这里就不赘述了。 1.1. 获取阿里云相关参数 登录阿里云容器镜像服务。地…

Uptime-kuba安装与使用

Github https://github.com/louislam/uptime-kuma环境查看 系统环境# cat /etc/redhat-release Rocky Linux release 9.3 (Blue Onyx) # uname -a Linux Rocky9Uptimekume003077 5.14.0-362.18.1.el9_3.0.1.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Feb 11 13:49:23 UTC 2024 x86_6…