美文网首页
区间贪心

区间贪心

作者: Bing_o_o | 来源:发表于2019-08-21 09:53 被阅读0次

问题描述

数轴上有n个开区间(ai,bi),尽量选择多个区间,是的这些区间两两之间没有共同点。

输入格式

第一行的数字代表有几个区间,如果为0,则退出
后面n行每一行都是一个开区间,用空格分隔

输出格式

输出最多有几个开区间

样例

输入
4
1 3
2 4
3 5
6 7

输出
3

C++实现

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

const int maxn = 110;

struct Interval {
    int x, y;
}I[maxn];

bool cmp(Interval a, Interval b) {
    if(a.x != b.x)
        return a.x > b.x;
    else
        return a.y < b.y;
}

int main() {
    
    int n;
    while(scanf("%d", &n), n != 0) {
        for(int i = 0; i < n; i++) {
            scanf("%d%d", &I[i].x, &I[i].y);
        }
        sort(I, I + n, cmp);
        int ans = 1, lastx = I[0].x;
        for(int i = 1; i < n; i++) {
            if(I[i].y <= lastx) {
                ans++;
                lastx = I[i].x;
            }
        }
        printf("%d\n", ans);
    }
    
    return 0;
}

相关文章

  • 贪心算法

    贪心区间

  • 区间贪心

    问题描述 数轴上有n个开区间(ai,bi),尽量选择多个区间,是的这些区间两两之间没有共同点。 输入格式 第一行的...

  • 贪心-区间覆盖

    例题: 数轴上有n个闭区间[ai,bi],选择尽量少的区间覆盖一条指定的线段[s,t]。 思路: 枚举所有可用区间...

  • 贪心--合并区间

    目录[https://www.jianshu.com/p/85e18c21317a] 题号[https://lee...

  • 贪心

    区间贪心 POJ 2376: Cleaning Shifts选择尽量少的区间覆盖一段线段。将所有区间按照左端点升序...

  • 贪心:区间类问题

    题目:选N个课程,每个课程开始和结束时间分别是a, b问:分身成几个人,可以完美上所有课程? 区间贪心版 染色版 ...

  • 区间贪心算法

    给出N个开区间(x,y),从中选择尽可能多的开区间,使得这些开区间两两没有交集。 区间被包含,选择区间长度短的 区...

  • 贪心十八:合并区间

    题目地址: https://leetcode-cn.com/problems/merge-intervals/[...

  • #(ACM)省赛题型总结#

    省赛题型总结: (1)一到二道简单题; (2)贪心:(hh负责拉题,oj,或者hust) 1:基础贪心; 2:区间...

  • 区间贪心,N个开区间,尽可能多的区间,使他们没有交集

    // 区间贪心——尽可能多的开区间.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//l...

网友评论

      本文标题:区间贪心

      本文链接:https://www.haomeiwen.com/subject/cqavsctx.html