选择不相交区间问题 (贪心)

来源:互联网 发布:智能网络液晶平板电视 编辑:程序博客网 时间:2024/04/29 08:53

数轴上有n个开区间(ai,bi),选择尽量多个区间,使得这些区间两两没有公共点。

#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>using namespace std;int n;struct node{    int l;    int r;}ss[1000];int cmp(node a,node b){    if(a.r==b.r)        return a.l>b.l;    return a.r<b.r;}int main(){    int i,j;    while(~scanf("%d",&n))    {        for(i=0;i<n;i++)        {            scanf("%d %d",&ss[i].l,&ss[i].r);        }        int sum=1;        sort(ss,ss+n,cmp);//        for(i=0;i<n;i++)//        {//            printf("%d %d\n",ss[i].l,ss[i].r);//        }        int end=ss[0].r;        for(i=1;i<n;i++)        {            if(ss[i].l>=end)            {                end=ss[i].r;                sum++;            }        }        printf("%d\n",sum);    } return 0;}
0 0
原创粉丝点击