• 题目1088:剩下的树(小端快排+大端判断边界)


    http://ac.jobdu.com/problem.php?pid=1088

    题目描述:                       

        有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,...,L共L+1个位置上有L+1棵树。     现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。     可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。

    输入:                       

        两个整数L(1<=L<=10000)和M(1<=M<=100)。     接下来有M组整数,每组有一对数字。

    输出:                       

        可能有多组输入数据,对于每组输入数据,输出一个数,表示移走所有区间的树之后剩下的树的个数。

    样例输入:                       
    500 3
    100 200
    150 300
    470 471
    样例输出:                       
    298

    # include<iostream>
    using namespace std;
     
    # include<algorithm>
     
    struct Node
    {
        int s;
        int e;
    };
     
    bool cmp(Node a, Node b)
    {
        return a.s < b.s;
    }
     
    int main()
    {
        int l, m;
        Node a[101];
        int i, k;
     
        while (cin >> l >> m)
        {
            for (i = 1; i <= m; i++)
            {
                cin >> a[i].s >> a[i].e;
            }
     
            sort(a + 1, a + 1 + m, cmp);
            k = -1;
            for (i = 1; i <= m; i++)
            {
                if (a[i].e <= k)
                {
                    //donothing
                }
                else if (a[i].s <= k)
                {
                    l -= (a[i].e - k);
                    k = a[i].e;
                }
                else
                {
                    l -= (a[i].e - a[i].s +1);
                    k = a[i].e;
                }
            }
            cout << l + 1 << endl;
        }
        return 0;
    }
    /**************************************************************
        Problem: 1088
        User: mmcNuaa@163.com
        Language: C++
        Result: Accepted
        Time:40 ms
        Memory:1520 kb
    ****************************************************************/
    View Code
  • 相关阅读:
    python——协程
    解读python中SocketServer源码
    python——初识socket
    python的类和对象——类的静态字段番外篇
    python的类和对象——类成员番外篇
    python的类和对象——进阶篇
    初识python中的类与对象
    python中lambda表达式应用
    python——挖装饰器祖坟事件
    python的基础类源码解析——collection类
  • 原文地址:https://www.cnblogs.com/mmcmmc/p/3869138.html
Copyright © 2020-2023  润新知