P1047 [NOIP2005 普及组] 校门外的树

news2025/5/19 17:31:54

题目

[NOIP2005 普及组] 校门外的树

题目描述

某校大门外长度为 l l l 的马路上有一排树,每两棵相邻的树之间的间隔都是 1 1 1 米。我们可以把马路看成一个数轴,马路的一端在数轴 0 0 0 的位置,另一端在 l l l 的位置;数轴上的每个整数点,即 0 , 1 , 2 , … , l 0,1,2,\dots,l 0,1,2,,l,都种有一棵树。

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

输入格式

第一行有两个整数,分别表示马路的长度 l l l 和区域的数目 m m m

接下来 m m m 行,每行两个整数 u , v u, v u,v,表示一个区域的起始点和终止点的坐标。

输出格式

输出一行一个整数,表示将这些树都移走后,马路上剩余的树木数量。

样例 #1

样例输入 #1

500 3
150 300
100 200
470 471

样例输出 #1

298

提示

【数据范围】

  • 对于 20 % 20\% 20% 的数据,保证区域之间没有重合的部分。
  • 对于 100 % 100\% 100% 的数据,保证 1 ≤ l ≤ 1 0 4 1 \leq l \leq 10^4 1l104 1 ≤ m ≤ 100 1 \leq m \leq 100 1m100 0 ≤ u ≤ v ≤ l 0 \leq u \leq v \leq l 0uvl

【题目来源】

NOIP 2005 普及组第二题

解题思路

  • 模拟。
  • 首先创建数组并初始化。
  • 然后输入要移走的区域,如果在区域中,数组中对应的数值变为0.
  • 最后用总长度+1 + 数组的总和,在减去数组的总长度即为答案。
  • 因为数组总和和数组长度的差值的绝对值,就是所有移植树木的数量,我们用总长度+1减去它即可。

Code

#include <iostream>
#include <vector>
#include <numeric>

using namespace std;

int main() {
	int l, m;
	int ans = 0;
	cin >> l >> m; // 输入数据
	vector <int> nums(10001, 1);  // 创建数组并初始化
	for (int i = 0; i < m; i++) {
		int left, right;
		cin >> left >> right;
		for (int j = left; j <= right; j++) {
			if (nums[j] == 0) {
				continue;
			}
			nums[j] = 0;
		}
	}
	ans =  l - 10000 + accumulate(nums.begin(), nums.end(), 0);
	cout << ans << endl;
	return 0;
}

运行结果

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

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

相关文章

批量化工程项目的实施过程

最近的批量化项目存在方案设计上的问题&#xff0c;导致很严重的后果。 1、各个相关方都需要投入较大的精力来处理此事&#xff1b; 2、投入的时间、金钱及人员等均在其中&#xff1b; 3、方案需要进行重新的验证&#xff0c;总体项目工程的周期进一步被压缩&#xff1b; 4…

21-InnoDB引擎底层存储和缓存原理

到目前为止&#xff0c;MySQL对于我们来说还是一个黑盒&#xff0c;我们只负责使用客户端发送请求并等待服务器返回结果&#xff0c;表中的数据到底存到了哪里&#xff1f;以什么格式存放的&#xff1f;MySQL是以什么方式来访问的这些数据&#xff1f;这些问题我们统统不知道。…

【C++ Primer】阅读笔记(1):基础

目录 简介类型选择(经验准则)当一个算术表达式既有int,又有无符号数时,int会转换为无符号数对象初始化与赋值的区别声明与定义全局变量与局部变量示例引用指针与引用的区别不可以将int变量直接赋值给指针,即便这个int变量是0const对象必须初始化参考结语简介 Hello! 非常…

pdf转换器电脑版免费,好用的办公操作软件集合

工作中太多的文件格式需要我们进行操作了&#xff0c;各种各样的文件可以打开的软件经常是不同的。就像是PDF文件&#xff0c;如果没有在电脑安装对应的可以打开的软件&#xff0c;可能我们就没办法直接查看文件内容。而且这种情况也不是偶然出现&#xff0c;可能还会随着我们文…

信息系统项目管理师的论文如何提高?

简单点来说吧&#xff01;也适合软考小白来看&#xff01; 信息系统项目管理师论文要写几道题&#xff1f;没有参加过信息系统项目管理师考试的考生对于论文科目考试不是很了解&#xff0c;那么信息系统项目管理师论文到底要写几道题呢&#xff1f; 软考高级信息系统项目管理…

振弦采集模块辅助功能寄存器之低功耗休眠

振弦采集模块辅助功能寄存器之低功耗休眠 在收到休眠指令后&#xff0c;完成当次测量后立即进入低功耗的休眠模式&#xff0c;休眠模式下&#xff0c; VDD 电流可降至 1mA 左右&#xff0c;当收到数字接口任意数据后自动唤醒。此功能会使硬件看门狗失效&#xff0c;存在模块意…

关于项目型和职能型组织结构的思考和笔记

1、区别项目型还是职能型&#xff0c;最根本的要点在于&#xff0c;沟通渠道必须通过谁&#xff08;负责人是谁&#xff0c;是项目经理还是职能经理&#xff0c;谁有沟通渠道控制权&#xff09;&#xff1b; 2、沟通渠道的控制权取决于利益的优先权&#xff08;例如&#xff1…

前端常用处理时间方法

项目上用到很多时间格式,写了一些处理时间的方法,也可以用第三方库,下面是我自己项目封装的一下方法,命名瞎写的,有些方法是关联的,很多没有怎么完善,记录一下,兼容ios时间问题,时间太赶没有完善,将就用下,人和程序有一个人跑就行 获取当前时间戳 getTodayTomorrowTtem export…

求树的直径(史上最详细,匠心之作,限时免费看)

一&#xff0c;题目SPOJ PT07Z, Longest path in a tree一.定义树上任意两节点之间最长的简单路径即为树的「直径」。二&#xff0c;解法做法 1. 两次 DFS过程:首先从任意节点y, 开始进行第一次 DFS&#xff0c;到达距离其最远的节点&#xff0c;记为 z&#xff0c;然后再从 z开…

ARM S5PV210 中断体系与外部中断实战

一、中断体系介绍 1、什么是中断 中断的发明是用来解决宏观上的并行需要的。宏观就是从整体上来看&#xff0c;多件事情都完成了。微观上的并行&#xff0c;就是指的真正的并行&#xff0c;就是精确到每一秒甚至每一刻&#xff0c;多个事情都是在同时进行的。宏观上面的并行并…

OQC与Cyxtera将量子计算应用于数据中心

牛津量子电路&#xff08;OQC&#xff09;正与云服务公司Cyxtera合作&#xff0c;在数据中心安装量子计算机&#xff0c;方便用户在其本地数据集上运行量子算法。 在葡萄牙里本举行的网络峰会上&#xff0c;牛津量子电路&#xff08;OQC&#xff09;首席执行官ILana Wisby谈到了…

【力扣经典题目】环形链表,判断链表是否有环

题目描述&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链…

【Unity】新手初学Animation实现人物移动

【Unity】新手初学Animation实现人物移动 需求&#xff1a;开发影院系统&#xff0c;希望加入Avatar人物&#xff0c;在其中行走和坐下 环境&#xff1a;Unity2021.3 新手初学Animation教程&#xff1a;BV1BW41187fL Avatar人物模型资源&#xff1a;学长网盘链接分享 Animation…

【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

实习------SpringMVC 框架学习

Spring MVC 是什么 &#xff08;了解&#xff09;Spring MVC&#xff08;全称 Spring Web MVC&#xff09;是 Spring 框架提供的一款基于 MVC 模式的轻量级 Web 开发框架&#xff0c;是 Spring 为表示层&#xff08;UI&#xff09;开发提供的一整套完备的解决方案。注&#xff…

《Linux运维总结:使用旧版redis-shake2.x进行redis集群间的数据同步【方案二】》

一、redis-shake简介 redis-shake是阿里云开源的用于Redis数据迁移和过滤的工具。 Github参考&#xff1a;redis-shake简介 1.1、迁移工具对比 redis-migrate-tool redis-migrate-tool是唯品会开源的一款Redis异构集群之间的数据实时迁移工具&#xff0c;不过已经有两年没有更…

如何对【javaSE】语法阶段复习

下面是我对学习java阶段的总复习&#xff0c;我愿称之为【复习宝典】 如果你对java的部分语法阶段的知识有所困惑&#xff0c;进来看看吧&#xff01; 文章目录 目录 文章目录 一、初始java 1.1java 的由来 1.2JDK安装 1.3main方法的介绍 二、数据类型和变量 2.1数据类型 三、运…

xxljob 里面 InheritableThreadLocal详解,XxlJobContext类的详解

目录 1 需求2 XxlJobContext类3 InheritableThreadLocal 类可以做什么1 需求 在xxljob 里面,有一个地方使用到了InheritableThreadLocal类 我们先说XxlJobContext类是干什么的,里面有什么东西 2 XxlJobContext类 这个类就是一个实体类,可以理解为实体类,里面有属性,有g…

Spring Boot读取配置文件内容的三种方式

系列文章目录 Spring Boot[概述、功能、快速入门]_心态还需努力呀的博客-CSDN博客 该系列文章持续更新中~ 目录 系列文章目录 前言 一、Value 二、Environment 2.1 注入对象 2.2 调用获取属性的方法 2.3 上述两种方法对比 三、ConfigurationProperties 3.1 创建一个实…

前端工程师leetcode算法面试必备-简单的二叉树

一、前言 本难度的题目主要考察二叉树的基本概念和操作。 1、基本概念 树是计算机科学中经常用到的一种非线性数据结构&#xff0c;以分层的形式存储数据。二叉树是一种特殊的树结构&#xff0c;每个节点最多有两个子树&#xff0c;通常子树被称作“左子树”和“右子树”。 …