• 区间找点问题


    描述

    上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点。但是这几天LYH太忙了,你们帮帮他吗?

    输入
    多组测试数据。
    每组数据先输入一个N,表示有N个闭区间(N≤100)。
    接下来N行,每行输入两个数a,b(0≤a≤b≤100),表示区间的两个端点。
    输出
    输出一个整数,表示最少需要找几个点。
    样例输入
    4
    1 5
    2 4
    1 4
    2 3
    3
    1 2
    3 4
    5 6 1 2 2
    样例输出
    1
    3
    1
    传送门:http://acm.nyist.net/JudgeOnline/problem.php?pid=891
     1 #include<stdio.h>/*贪心策略*/
     2 #include<algorithm>
     3 using namespace std;
     4 typedef struct
     5 {
     6     int a;/*左右端点*/
     7     int b;
     8 }region;
     9 int cmp(region M1,region M2)
    10 {
    11     if(M1.b!=M2.b)
    12         return M1.b<M2.b;
    13     return M1.a>=M2.a;
    14 }
    15 int main()
    16 {
    17     int N;
    18     while(scanf("%d",&N)==1)
    19     {
    20         int i,j,count=1,k;
    21         region p[N];
    22         for(i=0;i<N;i++)
    23             scanf("%d%d",&p[i].a,&p[i].b);
    24         sort(p,p+N,cmp);
    25     /*    for(i=0;i<N;i++)
    26             printf("%d    %d
    ",p[i].a,p[i].b);*/
    27         k=0;
    28         for(i=1;i<N;i++)
    29         {
    30             if(p[i].a>p[k].b)
    31             {
    32                 count++;
    33                 k=i;
    34                 continue;
    35             }
    36         
    37         }
    38         printf("%d
    ",count);
    39 
    40     }
    41 }
  • 相关阅读:
    POJ测试数据合集
    POJ1724ROADS
    关闭进程的数据库
    config上传设置
    tfs 撤销挂起的更改
    cn_visual_studio_team_foundation_server_2010_x86_x64_dvd_531909
    js 中文转义
    文件下载乱码
    杀死数据库进程
    Python基础综合练习
  • 原文地址:https://www.cnblogs.com/a1225234/p/4486056.html
Copyright © 2020-2023  润新知