洛谷【6】P1047 [NOIP2005 普及组] 校门外的树

简介: 洛谷【6】P1047 [NOIP2005 普及组] 校门外的树


题目描述

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

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

输入格式

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

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

输出格式

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

输入输出样例

输入 #1复制

500 3

150 300

100 200

470 471


输出 #1复制

298

说明/提示

【数据范围】

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

【题目来源】

NOIP 2005 普及组第二题

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
  int l, m, a[100001] = { 0 }, b[100001] = { 0 }, i, x = 0;
  scanf("%d%d", &l, &m);
  for (i = 1; i <= 2 * m; i++)//输入区间
    scanf("%d", &a[i]);
  for (i = 1; i <= 2 * m; i++)
    if (a[i] == 0)
      b[0] = 1;
  for (i = 1; i <= m; i++)
    for (int j = 1; j <= l; j++)
    {
      if (j >= a[2 * i - 1] && j <= a[2 * i])
        b[j] = 1;
    }
  for(i=0;i<=l;i++)
    if (b[i] == 0)
      x++;
  printf("%d", x);
  return 0;
}


相关文章
|
8月前
|
C++
【洛谷 P1047】[NOIP2005 普及组] 校门外的树 题解(位集合)
**NOIP2005普及组问题:**给定长度为$l$的马路,上面等距种植着树,需移除位于建造地铁区域的树。输入包含马路长度和区域数,以及各区域起止点,输出移树后剩余树的数量。样例输入:$l=500$, $m=3$,输出:$298$。$20\%$数据无区域重合,$1 \leq l \leq 10^4$,$1 \leq m \leq 100$。解决方案利用位集合(bitset)表示树的状态,遍历区域将树设为0,最后统计1的数量。AC代码使用C++实现。
56 0
洛谷【5】P1046 [NOIP2005 普及组] 陶陶摘苹果
洛谷【5】P1046 [NOIP2005 普及组] 陶陶摘苹果
|
8月前
【洛谷 P1046】[NOIP2005 普及组] 陶陶摘苹果 题解(比较)
`NOIP2005普及组`编程题《陶陶摘苹果》:陶陶有10个高度在100-200cm的苹果要摘,手触及最大高度+30cm板凳后能摘到的苹果数。输入10个苹果高度和她的最大触及高度,输出可摘苹果数。样例输入:10个苹果高度和110cm触及高度,输出5,表示能摘5个。代码通过逐个比较苹果高度实现统计。
100 0
【洛谷】【动态规划】P1002 [NOIP2002 普及组] 过河卒
【洛谷】【动态规划】P1002 [NOIP2002 普及组] 过河卒
385 0
【洛谷】【动态规划】P1002 [NOIP2002 普及组] 过河卒
洛谷【8】P1085 [NOIP2004 普及组] 不高兴的津津
洛谷【8】P1085 [NOIP2004 普及组] 不高兴的津津
洛谷【9】P1085 [NOIP2004 普及组] 不高兴的津津
洛谷【9】P1085 [NOIP2004 普及组] 不高兴的津津
试题历届真题乘积尾零【第九届】【省赛】【B组】(C++)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 如下的 1010 行数据,每行有 1010 个整数,请你求出它们的乘积的末尾有多少个零?
145 0
|
算法
【递归与递推】洛谷[NOIP2002 普及组] 过河卒
前言 本题来自洛谷P1002. 题目链接:[NOIP2002 普及组] 过河卒 - 洛谷
250 0
砍竹子(蓝桥杯 2022 省赛 B 组 J 题)
砍竹子(蓝桥杯 2022 省赛 B 组 J 题)
100 0
|
编译器 C语言 C++
试题 历届真题 交换瓶子【第七届】【省赛】【B组】
有N个瓶子,编号 1 ~ N,放在架子上。   比如有5个瓶子:   2 1 3 5 4   要求每次拿起2个瓶子,交换它们的位置。   经过若干次后,使得瓶子的序号为:   1 2 3 4 5   对于这么简单的情况,显然,至少需要交换2次就可以复位。   如果瓶子更多呢?你可以通过编程来解决。
174 0
试题 历届真题 交换瓶子【第七届】【省赛】【B组】

热门文章

最新文章