首页 > 编程语言 > 详细

Border - SGU 133(排序)

时间:2015-10-05 11:39:34      阅读:246      评论:0      收藏:0      [点我收藏+]

题目大意:有N对区间现在剔除一些区间,这些区间被另一些区间完全包含,如,Ai<Bi, Bj<Aj, A完全包含B,求出来这样被包含的区间个数。

分析:首先按照第一个数字先进行一下排序,然后剩下的就是简单的判断更新了....................

代码如下:

======================================================================================================

#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;

const int MAXN = 16007;

struct node
{
    int x, y;
    friend bool operator <(const node &t1, const node &t2)
    {
        return t1.x < t2.x;
    }
}date[MAXN];

int main()
{
    int N;

    scanf("%d", &N);

    for(int i=0; i<N; i++)
        scanf("%d%d", &date[i].x, &date[i].y);
    sort(date, date+N);

    int ans=0, x=-1, t1=0, t2=0;

    for(int i=0; i<N; i++)
    {
        if(x != date[i].x)
        {
            if(t1 < t2)
                t1 = t2;
            t2 = date[i].y;
            x = date[i].x;
        }

        if(t1 > date[i].y)
            ans++;
        t2 = max(t2, date[i].y);
    }

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

    return 0;
}

 

Border - SGU 133(排序)

原文:http://www.cnblogs.com/liuxin13/p/4855422.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!