zoukankan      html  css  js  c++  java
  • 【贪心】闭区间问题

    题目描述

    通过魔法钟回来的张琪曼和魔法学院的其他学员一起研究营救李旭琳脱离“时空陷”的方法。他们建立了n个对历史时间线的监控点,每个监控点可监控历史上的一个时间段,我们可以简单地看做是 x 轴上 n 个闭区间。但有些监控点监控的时间段是重叠的,这会干扰监控的准确性。请尝试去掉尽可能少的闭区间,使剩下的闭区间都不相交。

    输入

    第一行为闭区间的个数n(1≤n≤40000),随后n行为闭区间的2个端点。

    输出

    输出去掉尽可能少的闭区间的个数。

    样例输入

    3
    10 20
    15 10
    20 15
    

    样例输出

    2

    题解:由于是闭区间,比上一题增加不相交就可以。

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <algorithm>
     4 using namespace std;
     5 struct node
     6 {
     7     int sta,endd;
     8 };
     9 node p[110];
    10 bool cmp(node a,node b)
    11 {
    12     if(a.endd==b.endd)
    13     {
    14         a.sta<b.sta;
    15     }
    16     return a.endd<b.endd;
    17 }
    18 int main()
    19 {
    20     int n;
    21     cin>>n;
    22     for(int i=0;i<n;i++)
    23     {
    24         scanf("%d%d",&p[i].sta,&p[i].endd);
    25         if(p[i].sta>p[i].endd)
    26             swap(p[i].sta,p[i].endd);
    27     }
    28     sort(p,p+n,cmp);
    29     int flag=0;
    30     int cnt=1;
    31     for(int i=1;i<n;i++)
    32     {
    33         if(p[i].sta<=p[flag].endd)
    34             continue;
    35         flag=i;
    36         cnt++;
    37     }
    38     cout << n-cnt << endl;
    39     return 0;
    40 }
    View Code


  • 相关阅读:
    团队冲刺——第六天
    团队冲刺——第五天
    用户场景分析和第一阶个人计划。
    Java-web 学习感触一界面传值
    Java-web 学习感触一知识储备
    基于”Layui"框架构建前端页面
    HNC公司销售合同管理系统开发反思
    第十六周总结
    个人课程总结
    第十五周总结
  • 原文地址:https://www.cnblogs.com/SoulSecret/p/8422743.html
Copyright © 2011-2022 走看看