洛谷 火烧赤壁 差分/贪心

题目背景

曹操平定北方以后,公元 208 年,率领大军南下,进攻刘表。他的人马还没有到荆州,刘表已经病死。他的儿子刘琮听到曹军声势浩大,吓破了胆,先派人求降了。

孙权任命周瑜为都督,拨给他三万水军,叫他同刘备协力抵抗曹操。

隆冬的十一月,天气突然回暖,刮起了东南风。

没想到东吴船队离开北岸大约二里距离,前面十条大船突然同时起火。火借风势,风助火威。十条火船,好比十条火龙一样,闯进曹军水寨。那里的船舰,都挤在一起,又躲不开,很快地都烧起来。一眨眼工夫,已经烧成一片火海。

曹操气急败坏的把你找来,要你钻入火海把连环线上着火的船只的长度统计出来!

题目描述

给定每个起火部分的起点和终点,请你求出燃烧位置的长度之和。

输入格式

第一行一个整数,表示起火的信息条数 n。
接下来 n 行,每行两个整数 a,b,表示一个着火位置的起点和终点(注意:左闭右开)。

输出格式

输出一行一个整数表示答案。

输入输出样例

输入 #1复制

3
-1 1
5 11
2 9

输出 #1复制

11

说明/提示

数据规模与约定

对于全部的测试点,保证 1≤n≤2×104,−231≤a<b<231,且答案小于 231。

代码1:差分:80分,由于mn和mx的值超过1e8。

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <cstring>
#include <cmath>
#define MX 20005
using namespace std;
int n; 
int a[MX]= {0},d[MX];
int main() {
cin>>n;
int mn = 1e9+7,mx = -1e9+7;;
while(n--)
{
int x,y;
cin>>x>>y;
d[x] += 1;
d[y] += -1;
mn = min(mn,x);
mx = max(mx,y);
}
int cnt = 0;
for(int i = mn;i <= mx;i++)
{
a[i] = a[i-1] + d[i];
if(a[i])
{
cnt++;
}
}
cout<<cnt<<endl;
return 0;
}

代码二:模拟

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <cstring>
#include <cmath>
#define MX 20005
using namespace std;
int n; 
int a[MX],b[MX];
int main() {
cin>>n;
for(int i = 1;i <= n;i++)
{
cin>>a[i]>>b[i];
}
sort(a+1,a+n+1);
sort(b+1,b+n+1);
int cnt = 0;
for(int i = 1;i <= n;i++)
{
cnt = cnt + b[i] - a[i];
if(i < n)
{
if(b[i] > a[i+1])
{
cnt = cnt - (b[i] - a[i+1]);
}

}
cout<<cnt<<endl;
return 0;
}

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

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

相关文章

Linux 用户与组管理全解析

Linux 用户与组管理一、用户和组的基本概念 1. 用户账号类型 超级用户&#xff08;root&#xff09;&#xff1a;默认拥有系统最高权限&#xff08;UID0&#xff09;&#xff0c;仅建议用于系统管理与维护&#xff0c;日常操作应使用普通用户。普通用户&#xff1a;由管理员创建…

开疆智能ModbusTCP转Profient网关连接ER机器人配置案例

本案例时西门子1200PLC通过ModbusTCP转Profinet网关连接埃斯顿机器人的配置案例&#xff0c;网关作为ModbusTCP的客户端连接机器人。配置过程&#xff1a;首先打开机器人通讯手册。查询机器人支持的功能码及默认IP和端口号打开网关配置软件“Gateway Configuration Studio”新建…

Docker换源加速(更换镜像源)详细教程(2025.3最新可用镜像,全网最详细)

文章目录前言可用镜像源汇总换源方法1-临时换源换源方法2-永久换源&#xff08;推荐&#xff09;常见问题及对应解决方案1.换源后&#xff0c;可以成功pull&#xff0c;但是search会出错补充1.如何测试镜像源是否可用2.Docker内的Linux换源教程换源速通版&#xff08;可以直接无…

机器学习【三】SVM

本文系统介绍了支持向量机(SVM)的理论与实践。理论部分首先区分了线性可分与不可分问题&#xff0c;阐述了SVM通过寻找最优超平面实现分类的核心思想&#xff0c;包括支持向量、间隔最大化等关键概念。详细讲解了硬间隔与软间隔SVM的数学原理&#xff0c;以及核函数(线性核、多…

DevOps平台大比拼:Gitee、Jenkins与CircleCI如何选型?

DevOps平台大比拼&#xff1a;Gitee、Jenkins与CircleCI如何选型&#xff1f; 在数字化转型浪潮席卷全球的当下&#xff0c;DevOps已成为企业提升研发效能的关键引擎。面对市场上纷繁复杂的DevOps工具链&#xff0c;如何选择最适合自身业务需求的平台成为技术决策者的重要课题。…

开源医院信息管理系统:基于若依框架的智慧医疗解决方案

引言在数字化浪潮的推动下&#xff0c;医疗行业正加速向信息化、智能化转型。医院信息管理系统&#xff08;HIS&#xff09;作为医疗管理的核心工具&#xff0c;直接影响医院的运营效率和服务质量。近期&#xff0c;一款基于 若依框架 Vue 的开源医院管理系统&#xff08;hosp…

我的世界进阶模组开发教程——附魔(2)

EnchantmentHelper 类详解 EnchantmentHelper 是 Minecraft 中处理物品附魔逻辑的核心工具类,提供附魔的存储、查询、计算和应用等功能。以下是对其字段和方法的逐行详细解释: 关键字段 private static final String TAG_ENCH_ID = "id"; // NBT标签键:附…

深度学习零基础入门(4)-卷积神经网络架构

许久不见~ 本节我们延续上一节的话题来看看卷积神经网络的架构&#xff0c;看看具体的卷积、池化等操作卷积神经网络详解&#xff1a;从基础操作到整体架构 一、卷积操作&#xff1a;特征提取的核心 卷积是卷积神经网络&#xff08;CNN&#xff09;的核心操作&#xff0c;灵感来…

C语言的控制语句

C的控制语句 控制语句是C语言中用于控制程序执行流程的结构。通过控制语句,可以根据条件执行不同的代码块,或者重复执行某些操作,从而实现复杂的逻辑和功能。掌握控制语句是编写有效和高效C程序的关键。 1 条件控制 条件控制语句用于根据某些条件来决定程序的执行路径。C语…

Mac电脑基本功能快捷键

1. 个性化桌面 将喜爱照片添加为桌面墙纸。前往“系统设置”&#xff0c;然后点按边栏中的“墙纸”。点按“添加照片”&#xff0c;然后从文件或“照片”App选取一张照片。 2. 截屏 按下键盘上的Shift &#xfffc; Command ⌘ 5&#xff0c;然后选取捕捉整个屏幕、App窗口或…

微算法科技(NASDAQ: MLGO)开发量子边缘检测算法,为实时图像处理与边缘智能设备提供了新的解决方案

图像边缘检测是计算机视觉的核心任务&#xff0c;传统算法&#xff08;如 Sobel、Canny&#xff09;依赖梯度计算与阈值分割&#xff0c;在处理高分辨率、复杂纹理图像时面临计算效率瓶颈。随着量子计算技术的发展&#xff0c;利用量子态叠加与并行处理特性&#xff0c;微算法科…

断点续传Demo实现

基于我们的DownloadManager.swift代码&#xff0c;让我详细解释断点续传需要实现的核心功能&#xff1a; 断点续传的核心实现要素 1. 后台会话配置 private func setupBackgroundSession() {let config URLSessionConfiguration.background(withIdentifier: "com.test.do…

《Leetcode》-面试题-hot100-子串

题目列表 560. 和为K的子数组 中等难度 leetcode链接 239 滑动窗口最大值 困难难度 leetcode链接 76 最小覆盖子串 困难难度 leetcode链接 题目 &#xff08;1&#xff09;和为K的子数组 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 …

点击弹框以外的区域关闭弹框

在 Vue 3 中&#xff0c;如果你想判断点击的目标是否在弹框内&#xff0c;可以通过以下步骤实现。这里我们将使用 ref 来引用弹框组件&#xff0c;并在点击事件中进行判断。 示例代码 1. 创建弹框子组件 首先&#xff0c;创建一个名为 Modal.vue 的子组件。 <!-- Modal.vue …

00.Vue基础入门【小白级别手把手!】

目录 一、Vue介绍 二、创建Vue项目 nodeJs nvm版本管理 创建Vue项目 VS Code编辑器 三、.Vue文件结构说明 数据渲染 四、Vue项目目录说明 main.ts文件说明 五、Vue官网文档学习 一、Vue介绍 基础介绍 Vue是一个前端Web框架&#xff0c;属于单页应用&#xff08;SPA&am…

将Varjo XR技术融入战斗机训练模拟器,有效提升模拟训练沉浸感与效率

本周在Varjo总部&#xff0c;收到了一份令人兴奋的礼物&#xff0c;一架由Dogfight Boss与varjo XR-4集成的训练模拟器。这是一个专业级模拟器&#xff0c;专为高保真训练和任务排练而设计&#xff0c;非常注重细节&#xff0c;提高了沉浸水平。为此Dogfight Boss的首席执行官L…

C# async await 实现机制详解

一、async/await 异步编程实现机制 1.1 核心概念 async/await 是 C# 5.0 引入的语法糖&#xff0c;它基于**状态机&#xff08;State Machine&#xff09;**模式实现&#xff0c;将异步方法转换为编译器生成的状态机类。 1.2 编译器转换过程 当编译器遇到 async 方法时&#xf…

Servlet 学习笔记

本文为记录Servlet学习时的一些笔记和代码 课程参考黑马程序员 对于Java Web 学习的一个复习一 概述server applet 运行在服务器端的小程序 本质就是一个接口 定义java类被浏览器访问到&#xff08;Tomcat识别&#xff09;的规则我们会自定义这样一个类来实现复写方法实现接口二…

【maven】仓库配置

目录 一、本地仓库 二、私有仓库 三、阿里云仓库 一、本地仓库 针对无外网、无maven私服&#xff0c;只有本地仓库&#xff0c;进行maven项目开发。在maven的settings.xml中设置三项&#xff1a; 1、本地仓库地址 默认在当前系统用户下创建目录&#xff1a;.m2/repository…

信息系统架构设计的系统性解析

一、信息系统架构设计​​概念定义​​&#xff1a;信息系统架构&#xff08;ISA&#xff09;是对系统组件、交互关系及环境约束的结构化抽象&#xff0c;确保业务目标与技术实现对齐。核心要素包括业务逻辑层、数据层、应用层和基础设施层。​​设计方法​​&#xff1a;​​T…