zoukankan      html  css  js  c++  java
  • 活动安排问题 (贪心)

    点击打开链接



    输入

    第1行:1个数N,线段的数量(2 <= N <= 10000)
    第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <= 10^9)

    输出

    输出最多可以选择的线段数量。

    输入示例

    3
    1 5
    2 3
    3 6

    输出示例

    2

    请选取你熟悉的语言,并在下面的代码框中完成你的程序,注意数据范围,最终结果会造成Int32溢出,这样会输出错误的答案。
    不同语言如何处理输入输出,请查看下面的语言说明。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    #include<queue>
    #include<algorithm>
    #include<math.h>
    using namespace std;
    struct node
    {
        int begin;
        int end;
    }Num[100009];
    bool cmp1(node a, node b)
    {
        return a.end < b.end ;      //
    }
    int main()
    {
        int n;
        int k=1;
        int count=1;
        scanf("%d",&n);
        for(int i=1; i<=n; i++)
        {
            scanf("%d %d", &Num[i].begin , &Num[i].end );       
        }
        sort(Num+1, Num+n+1, cmp1);
        for(int i=2; i<=n; i++)
        {
            if(Num[i].begin >= Num[1].end)
            {
                Num[1].end = Num[i].end ; 
                count++;            
            }       
        }
            printf("%d ",count);
        return 0;
    }
    恭喜!你的程序通过了所有的数据测试。 


    刚开始不太明白结束时间与开始时间的比较问题,现在想明白后就有了一种醍醐灌顶的感觉生气











    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    POJ 3468 A Simple Problem with Integers(线段树 区间更新)
    Windows Mobile 6.0 SDK和中文模拟器下载
    Linux学习笔记——例说makefile 头文件查找路径
    uva 11427
    腾讯2014年实习生招聘笔试面试经历
    AVC1与H264的差别
    oracle递归函数
    全部编程皆为Web编程
    JavaScript--语法2--语句结构
    JavaScript--变量和运算符
  • 原文地址:https://www.cnblogs.com/h-hkai/p/7406497.html
Copyright © 2011-2022 走看看