• SDNU 1012.区间合并


    Description

    给定n个开区间,合并他们中的重合者,输出合并后的区间数量。

    Input

    第一行:n(1 <= n <= 1000)
    第2至第n+1行:每行两个整数(不会超过int),第i行的两个整数表示第i-1个区间的左边界和右边界。

    Output

    合并后所剩余的区间数量。

    Sample Input

    3
    1 3
    2 5
    6 7

    Sample Output

    2
    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    #include<cmath>
    #include<iomanip>
    #include<cstring>
    
    using namespace std;
    
    struct shu    //定义一个结构体
    {
        int a,b;
    } p[1010];
    bool cmp(shu aaa, shu bbb)    //将sort按a从小到大的顺序排序
    {
        if(aaa.a!=bbb.a) return aaa.a<bbb.a;
    }
    int main()
    {
        int n,t;
        scanf("%d", &n);
        t=n;
        for(int i=0; i<n; i++)
        {
            scanf("%d %d", &p[i].a,&p[i].b);
        }
        sort(p,p+n,cmp);
        for(int i=0; i<n-1; i++)
        {
            //比较第一个的结尾和下一个的开始的大小,看是否区间重复
            if(p[i+1].a<p[i].b)
            {
                t--;
                if(p[i+1].b<p[i].b)
                    p[i+1].b=p[i].b;
            }
        }
        printf("%d", t);
        return 0;
    }
  • 相关阅读:
    102/107. Binary Tree Level Order Traversal/II
    110. Balanced Binary Tree
    SQL SERVER select,update,delete使用表别名
    C# 有哪些集合
    C# 流总结
    How ASP.NET MVC Works ? (Artech)
    c#扩展方法
    使用缓存的九大误区
    9中浏览器端缓存
    理解AppDomain和AppPool
  • 原文地址:https://www.cnblogs.com/RootVount/p/10381391.html
Copyright © 2020-2023  润新知