• 【贪心】监测点


    题目描述

    “多么希望有一天突然惊醒,发现自己是在小学的一节课上睡着了,现在经历的一切都是一场梦,桌上满是你的口水。你告诉同桌,说做了一个好长好长的梦。同桌骂你白痴,叫你好好听课。你看着窗外的球场,一切都那么熟悉,一切还充满希望……”张琪曼通过时空监测点听到40年前的小墨老师对李旭琳这样说。

    话说张琪曼等人将历史时间线划分了n个区域,我们可以将之看成是数轴上的n个闭区间[ai,bi]。现要设置尽量少的监测点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个),请问需要多少个监测点?

    输入

    第一行为一个整数X,表示有X组数据,每组数据第一行为一个整数n(N≤100),表示有n个闭区间,随后n行每行为两个整数,表示区间左端a和右端b(0≤a≤b≤100)。

    输出

    一个整数,即监测点个数。

    样例输入

    1
    3
    1 5
    2 8
    6 9

    样例输出

    2

    分析:其实这题和上一题一样。。。

    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <deque>
    #include <map>
    #define range(i,a,b) for(int i=a;i<=b;++i)
    #define LL long long
    #define rerange(i,a,b) for(int i=a;i>=b;--i)
    #define fill(arr,tmp) memset(arr,tmp,sizeof(arr))
    using namespace std;
    pair<int,int>aa[115];
    int n,ans,t;
    void init(){
        cin>>t;
    }
    void swap(int&a,int&b){
        int tmp=a;
        a=b;
        b=tmp;
    }
    bool cmp(pair<int,int>a,pair<int,int>b){
        return a.second<b.second||a.second==b.second&&a.first<b.first;
    }
    void solve(){
        while(t--) {
            cin >> n;
            int s, e;
            range(i, 1, n) {
                cin >> s >> e;
                if (s > e)swap(s, e);
                aa[i].first = s;
                aa[i].second = e;
            }
            sort(aa + 1, aa + 1 + n, cmp);
            ans = 1;
            int pos = 1;
            range(i, 2, n)
                if (aa[i].first > aa[pos].second) {
                    ++ans;
                    pos = i;
                }
            cout << ans << endl;
        }
    }
    int main() {
        init();
        solve();
        return 0;
    }
    View Code
  • 相关阅读:
    I/O流
    宇宙第一帅的HTML笔记
    宇宙无敌第一帅的Java笔记
    Activity常用的方法
    Spinne
    安卓布局方式
    for循环
    TextView
    开发Activity步骤
    重写
  • 原文地址:https://www.cnblogs.com/Rhythm-/p/9344297.html
Copyright © 2020-2023  润新知