题解 | #值周#

值周

https://ac.nowcoder.com/acm/problem/24636

贪心 时间复杂度 O(mlogm)

  • 对给定区间进行左端点排序
  • 将具有交集部分的区间划分成整体, 并计算出此区间长度
  • 最总答案 : n+1n+1 - Σ\Sigma非交集区间长度
#include <iostream>

using namespace std;

const int N = 1000010;

typedef pair<int,int> PII;

PII p[N];


int main()
{
    int n, m;
    scanf("%d%d", &n, &m);

    for (int i = 0; i < m; ++ i)
    {
        int x, y;
        scanf("%d%d", &x, &y);
        p[i] = {x, y};
    }
    sort(p, p + m);
    int res = 0, start = p[0].first, r = 0;
    for (int i = 1; i < m; ++ i)
    {
        if (p[i].first > p[r].second)
        {
            res += p[r].second - start + 1;
            start = p[i].first;
        }
        if (p[i].second > p[r].second)   r = i;
    }
    res += p[r].second - start + 1;
    printf("%d\n", n + 1 - res);
    
    return 0;
}
全部评论

相关推荐

程序员牛肉:你这简历有啥值得拷打的?在牛客你这种简历一抓一大把,也就是个人信息不一样而已。 关键要去找亮点,亮点啊,整个简历都跟流水线生产出来的一样。
点赞 评论 收藏
分享
10-29 18:20
济南大学 Java
用微笑面对困难:他不是人事吗,怎么净特么不干人事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务