905. 区间选点

摘要
Title: 905. 区间选点
Tag: 区间并集、最大不相交区间数量、贪心
Memory Limit: 64 MB
Time Limit: 1000 ms

Powered by:NEFU AB-IN

Link

905. 区间选点

  • 题意

    给定 N 个闭区间 [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。
    输出选择的点的最小数量。
    位于区间端点上的点也算作区间内。

  • 思路

    img
    与区间合并不同,这次按照右端点排序

    一直维护一个区间的右端点,直到新来的区间的左端点大于维护的右端点,说明出现断层,需要新加点;并更新维护的右端点为新区间的右端点,这样是最佳的

    同类型题 908. 最大不相交区间数量

  • 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    '''
    Author: NEFU AB-IN
    Date: 2022-03-14 17:54:28
    FilePath: \ACM\Acwing\905.py
    LastEditTime: 2022-03-14 20:47:42
    '''
    n = int(input())
    INF = int(2e9)

    r = -INF

    a = []
    for i in range(n):
    L, R = map(int, input().split())
    a.append([L, R])

    a.sort(lambda x: x[1])

    ans = 0
    for L, R in a:
    if L > r:
    ans += 1
    r = R

    print(ans)
使用搜索:谷歌必应百度