首页 > 其他分享 >19移树

19移树

时间:2024-02-02 14:35:02浏览次数:24  
标签:移树 end 数轴 19 begin int

19移树

题目描述

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

输入格式

输入的第一行有两个整数L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

输出格式

输出包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。

样例输入

10000 10
123 134
890 1231
1321 3123
3333 4444
9999 10000
8888 9988
4555 4666
5000 6000
8007 8887
6777 8000

样例输出

2411

code

#include <bits/stdc++.h>
using namespace std;

int Road[10001];//最长马路

void move(int begin, int end) { //移除begin到end的树
	for(int i=begin; i<=end; i++) { //如果不算边界 
		if(Road[i]==0) { //有树则移除,无树则忽略
			Road[i]=1; //移除
		}
	}
}


int main() {
	int count =0; //统计树的数目
	
	//L代表马路的长度,M代表区域的数目
	int L,M;
	cin >> L >> M;
	for(int i=0; i<M; i++) {
		//一个区域的起始点和终止点
		int begin,end;
		cin >> begin >> end;
		move(begin,end);
	}

	for(int i=0; i<=L; i++) {
		if(Road[i]==0) {
			count++; //有树则+1,统计
		}
	}
	cout << count;
	return 0;
}

视频讲解

<iframe allowfullscreen="true" border="0" frameborder="no" framespacing="0" height="600" scrolling="no" src="//player.bilibili.com/player.html?aid=1100142627&bvid=BV1mA4m1L7nS&cid=1427513935&p=1" width="95%"> </iframe>

标签:移树,end,数轴,19,begin,int
From: https://www.cnblogs.com/daizixuan/p/18003116

相关文章

  • 洛谷 P8687 [蓝桥杯 2019 省 A] 糖果
    题意有\(m\)种口味,每次\(k\)颗一袋出售,给你\(n\)包均为\(k\)颗的糖果,求最少买几袋可以吃到所有口味的糖果。思路暴力对\(n\)包糖果做组合。如果找到其中一种包含了所有口味,将所有满足的方案取糖果包数最小即可。时间复杂度\(\mathcal{O(2^n)}\)。正解考虑状......
  • 19蟠桃
    19蟠桃记题目描述孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。这下可把神仙们心疼坏了,请帮忙计算一下,第一天开始吃的时候桃子一共有多少个桃子。输......
  • Windows Server 2019 安装IIS 服务
    安装步骤1、点击左下角打开开始菜单找到服务器管理器菜单打开服务器管理器2、在弹出的服务器管理器界面找到添加角色和功能3、在弹出的添角色和功能向导中选择下一步4、选择:基于角色或基于功能的安装,然后下一步5、选择:从服务器池中选择服务器,然后下一步6、选择:Web服务器(IIS),......
  • 代码随想录算法训练营第四天 |24. 两两交换链表中的节点 | 19.删除链表的倒数第N个节
    142.环形链表II 已解答中等 相关标签相关企业 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,......
  • CF1919 C. Grouping Increases
    给定一个长为\(n\)的序列\(a\),你需要将该序列恰好分成两个子序列\(s,t\)。定义一个长为\(m\)的序列\(b\)的代价为\(\displaystylep(b)=\sum_{i=1}^{m-1}[b_i<b_{i+1}]\),求\(p(s)+p(t)\)的最小值。每个测试点\(t\)组测试用例。思路贪心。可以发现答案的贡献只与......
  • 文心一言 VS 讯飞星火 VS chatgpt (191)-- 算法导论14.2 1题
    一、用go语言,通过为结点增加指针的方式,试说明如何在扩张的顺序统计树上,支持每一动态集合查询操作MINIMUM、MAXIMUM、SUCCESSOR和PREDECESSOR在最坏时间O(1)内完成。顺序统计树上的其他操作的渐近性能不应受影响。文心一言:为了在扩张的顺序统计树上支持每一动态集合查询操作......
  • CF1916E Happy Life in University
    关于我赛时线段树忘了开四倍空间导致白吃了一发罚时这档逝原题传送门约定\(x\)子树内的叶子称为\(x\)的叶子。与\(x\)颜色相同的点称为\(x\)的同色点或\(x\)色点。所有在\(x\)子树内的、到\(x\)的路径上(两端不含)没有\(x\)的同色点的\(x\)的同色点称为\(x\)......
  • 「杂题乱刷」CF1925C & CF1924A
    题目链接CF1925C&CF1924ADidWeGetEverythingCovered?解题思路容易看出,我们可以开个桶存储当前搜索过的字母,当所有字母都有了之后就将桶清空,然后从当前搜到的位置继续存储,如果桶的清空次数小于\(k\)次则一定有至少一个字符串无法达到要求,这时我们只需要构造桶清空时的......
  • CF1924B Space Harbour
    思路可以观察到一件事情:在两个港口之间的船他们对应的价值都是一样的,都为左边港口的权值。因此对于这段区间的价值和就可以写成\(val\times\sumdis\)的形式,\(\sumdis\)便为这些船到右边港口的距离和。那么我们就可以按照港口把序列分成很多个区间来考虑。港口用一个set......
  • [office] Excel 2019新增功能 MINIFS函数 介绍
    定义:返回一组给定条件所指定的单元格的最小值。语法结构如下:MINIFS(min_range,criteria_range1,criteria1,[criteria_range2,criteria2],...)min_range(必需)参数指的是确定最小值的实际单元格区域;criteria_range1(必需)参数指的是一组用于条件计算的单元格;criteria1(必需)参数指的是用于......