zoukankan      html  css  js  c++  java
  • 洛谷 p1803 凌乱的yyy

    这是一道贪心思想的题目,这个题目的贪心类型非常经典,在《挑战程序设计竞赛》中贪心这一节有对这类题型的讲解

    基本上可以概述为,给定一堆区间(给出区间起点和终点),然后选区间,但是有重复区域的区间不能都选,求出最多可选多少区间

    这道题的思想就是优先选结束时间最短的区间,因为无论区间开始时间如何,若结束时间短,它便会留出更多空间给其它区间

    可能有人会有疑问,若有很多很多开始时间卡在那个最短区间区域内的区间时,岂不是那么多区间就都不能选了

    实际上,就是不能选,仔细想一想,即使那些区间很多,但是若选了那些区间中的任意一个,其它的这类区间也都选不了了,到头来那么多区间也是只有一个区间被选上,同时由于你选的这个不是结束时间更短的,反而还会造成后面开始的区间也选不上,所以无论怎样,你都会发现选最早结束的区间是最划算的

    #include<bits/stdc++.h>
    using namespace std;
    
    bool cmp(pair<int, int> a, pair<int, int> b){
      return a.first < b.first;
    }
    
    int main(){
      ios::sync_with_stdio(false);
      int n;
      cin >> n;
      vector< pair<int, int> > cts(n);
    
      for(int i=0; i<n; i++)
        cin >> cts[i].second >> cts[i].first;
    
      sort(cts.begin(), cts.end(), cmp);
    
      int ans=0, end=0;
      for(int i=0; i<n; i++){
        if(cts[i].second >= end){
          ans++;
          end = cts[i].first;
        }
      }
    
      cout << ans;
      return 0;
    }
  • 相关阅读:
    linux python2.6升级2.7
    Kafka介绍及安装部署
    kafka搭建
    Zookeeper 集群的安装及高可用性验证已完成!
    grafana初体验
    mac 密码重置
    制作 macOS High Sierra U盘
    运维监控篇Zabbix简单的性能调优
    zabbix主动模式设置
    OpenCV入门:(六:基础画图函数)
  • 原文地址:https://www.cnblogs.com/ssNiper/p/11253347.html
Copyright © 2011-2022 走看看