zoukankan      html  css  js  c++  java
  • 问题 K: 找点

    题目描述

    上数学课时,老师给了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
     1 #include<stdio.h>
     2 #include<algorithm>
     3 
     4 using namespace std;
     5 struct st {
     6     int l, r;
     7 }date[101];
     8 
     9 int cmp(st x,st y) {
    10     if(x.r != y.r)
    11         return x.r < y.r;
    12     return x.l < y.l;
    13 }
    14 
    15 int main( ) {
    16     int n;
    17     while(scanf("%d", &n) != EOF) {
    18         for(int i = 0; i < n; i ++)
    19             scanf("%d%d", &date[i].l, &date[i].r);
    20         sort(date, date + n, cmp);
    21         int ans = 1;
    22         int k = date[0].r;
    23         for(int j = 1; j < n;j ++) {
    24             if(date[j].l>k) {
    25                 k = date[j].r;
    26                 ans ++;
    27             }
    28         }
    29         printf("%d
    ", ans);
    30     }
    31     return 0;
    32 }
    View Code
  • 相关阅读:
    Spinal Tap Case
    Sorted Union
    Search and Replace
    Boo who
    Missing letters
    DNA Pairing
    Pig Latin
    Where art thou
    Roman Numeral Converter
    Redis高级客户端Lettuce详解
  • 原文地址:https://www.cnblogs.com/tong69/p/5802152.html
Copyright © 2011-2022 走看看