POJ 1716 Integer Intervals#贪心

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 1716 Integer Intervals#贪心相关的知识,希望对你有一定的参考价值。

(~ ̄▽ ̄)~*

//求一个集合,这个集合与任意一个区间的交集,需至少有两个数字
//贪心过程:按n个区间的最右值从小到大对区间进行排列,
//集合首先取第一个区间的最右两个数字,
//到第二个区间,判断集合里的数有没有在区间里
//没有的话,就从第二个区间的最右开始往左取(cnt=0取最后两个数,cnt=1取最后一个数)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;

struct interval
{
    int l,r;
}a[10005];

bool cmp(interval a,interval b)
{
    return a.r<b.r;
}

int main()
{
    int n,res=0;

    scanf("%d",&n);
    for(int i=0;i<n;i++)
        scanf("%d %d",&a[i].l,&a[i].r);
    sort(a,a+n,cmp);

    vector<int> Set;
    Set.push_back(a[0].r-1);
    Set.push_back(a[0].r);
    res=2;
    for(int i=1;i<n;i++)
    {
        int cnt=0;
        for(int j=0;j<Set.size();j++)
        {
            if(Set[j]>=a[i].l&&Set[j]<=a[i].r)
                cnt++;

        }
        if(cnt==0)
        {
            Set.push_back(a[i].r-1);
            Set.push_back(a[i].r);
            res+=2;
        }
        else if(cnt==1)
        {
            Set.push_back(a[i].r);
            res++;
        }
    }
    printf("%d\n",res);
    return 0;
}

以上是关于POJ 1716 Integer Intervals#贪心的主要内容,如果未能解决你的问题,请参考以下文章

poj 1716 Integer Intervals

POJ1716Integer Intervals——差分约束||贪心

STL之全排列函数poj1716

POJ1716 贪心

POJ2029 ZOJ1716 Get Many Persimmon Trees二维树状数组

[poj] 1375 Interval || 圆的切线&和直线的交点