zoukankan      html  css  js  c++  java
  • 1012.区间合并

    1012.区间合并

    Time Limit: 1000 MS    Memory Limit: 32768 KB
    Total Submission(s): 959    Accepted Submission(s): 184

    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



    4
    6 7
    3 5
    4 6
    1 2
    1.把区间按区间左端点升序排列
    (1,2)
    (3,5)
    (4,6)
    (6,7)
    2.将区间第i个区间左端点与第i+1个的区间右端点比较
    若< 则不是一个区间 并将answer+1
    若> 则是一个区间 并将合并后的区间右端点更新
    #include <bits/stdc++.h>
    using namespace std;
    struct qujian
    {
        int zuo,you;
    }a[1005];
    bool cmp(qujian a1,qujian b1)
    {
        return a1.zuo<b1.zuo;
    }
    int n,ans,i;
    int main()
    {
        while(scanf("%d",&n)!=EOF)
        {
            for(i=0;i<n;i++)
            {
                scanf("%d %d",&a[i].zuo,&a[i].you);
            }
            ans=1;
            sort(a,a+n,cmp);
            for(i=0;i<n-1;i++)
            {
                if(a[i].you>a[i+1].zuo)//是同一区间
                {
                    a[i+1].you=max(a[i].you,a[i+1].you);//右端点复合
                }
                else
                {
                    ans++;
                }
            }
            cout<<ans<<'
    ';
        }
    }
  • 相关阅读:
    Python open 读和写
    Sublime Text的使用
    解决MySQL Workbench导出乱码问题
    统计学(一)
    pymysql使用(二)
    使用pymysql(使用一)
    2个Excel表格核对技巧
    用Python读写Excel文件的方式比较
    从零上手Python关键代码
    php面试
  • 原文地址:https://www.cnblogs.com/guanwen769aaaa/p/10278772.html
Copyright © 2011-2022 走看看