区间相交问题

来源:互联网 发布:linux中sed命令详解 编辑:程序博客网 时间:2024/06/12 00:14

问题描述:给定x轴上n个闭区间。去掉尽可能少的闭区间,使剩下的闭区间都不相交。

数据输入:第一行是正整数,编程计算去掉的最少闭区间数

数据输出:计算出去掉最小的闭区间数

这个按照结束时间从小到大排序即可,在进行判断

#include <bits/stdc++.h>using namespace std;struct point{    int a,b;}data[1005];int cmp(point aa,point bb){    return aa.b<bb.b;}int main(){    int n;    while(cin>>n)    {        for(int i=1; i<=n; i++)        {            cin>>data[i].a>>data[i].b;            if(data[i].a>data[i].b)            swap(data[i].a,data[i].b);        }        sort(data+1,data+1+n,cmp);        int ans=1;        int k=1;        for(int i=2;i<=n;i++)        {           if(data[i].a>data[k].b)           {               ans++;               k=i;           }        }        cout<<n-ans<<endl;    }       return 0;}/*input310 2010 1520 1531 102 56 835 63 56 8output211*/


原创粉丝点击