美文网首页
区间贪心,N个开区间,尽可能多的区间,使他们没有交集

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

作者: km15 | 来源:发表于2020-01-31 16:42 被阅读0次

// 区间贪心——尽可能多的开区间.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
learn && wrong:
1、还是得那个图来看,首先,排序是关键,然后再是FOR循环,以第一个【0】为lastx,不断更新并且累加

#include <iostream>
#include <algorithm>
using namespace std;

const int maxn = 110;

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

bool cmp(invel a, invel 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); //把区间排序

    //ans记录不想区间的个数,lastx记录上个被选中区间的左端点
    int ans = 1,lastx = I[0].x;
    for (int i = 1;i < n;++i) {
        if (I[i].y < lastx) {  //如果该区间右断电在lastX左边
            lastx = I[i].x;  //以I[i]做为新选中的区间,不想交区间个数+1
            ans++;
        }
    }

    printf("%d\n", ans);
    }

    return 0;
}

相关文章

  • 区间贪心算法

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

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

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

  • 贪心算法之区间相关小结

    选择不相交问题 问题描述: 数轴上有n个开区间(ai,bi),尽量选择多个区间,是的这些区间两两之间没有共同点。 ...

  • 区间贪心

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

  • 二分查找

    开区间与闭区间开区间——意味着是开的,也就是没有端点 ( )闭区间——意味着关闭的,也就是有端点 [ ] 搜索区...

  • kotlin精讲-第5章(1)区间介绍&表示

    区间介绍 区间又叫Range,在数学里,区间通常是指一类实数集合,分为开区间、闭区间、半开半闭区间。 开区间指的是...

  • Swift For in & repeat while 循环

    for in 循环字典 输出结果 for in 分段区间: 开区间 for in 分段区间: 闭区间 repeat...

  • Kotlin基础认识 (9)区间

    区间表示:.. 闭区间、until 半闭半开区间。downTo降续闭区间、step跨度步长。使用 in 和 !in...

  • Swift区间运算符和for-in循环

    1.区间运算符 •闭区间[a,b]-------> a...b•前闭后开区间[a,b)------->a..

  • Swift-流程控制for循环

    区间 开区间0..<3 ---》0 1 2 闭区间0...3---》0 1 2 3 for循环 基础for循环 i...

网友评论

      本文标题:区间贪心,N个开区间,尽可能多的区间,使他们没有交集

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