这道题一看就是区间排序,但是怎么把没有安排的区间记录这就有点困难了;
区间排序按照这样排序:

bool cmp(Node a,Node b){if(a.l==b.l)return a.r<b.r;//如果左区间相等,就按照右区间从小到大排序else return a.l<b.l;//左区间不相等,那么久按照左边,从小到大排序;
}

举个例子,如果我这个区间经过排序成了这样:

我初始化,l和r分别为1和0;我用for(0:n-1)那么如果r<L1那么l就应该先记录max(ans,L1-l),之后再把l指向r+1,然后再把r指向R1;如果r>L2那么就把r指向R2去,同理这样一直指到R4,然后由于r<L5了,所以就把l指向r+1的地方,最后r指向R5;
所以最后要求一下n-r的值;为什么l要初始化为1呢?因为如果刚开始区间是1开头的,那么L1-l就是0;所以这样就可以把前面的抵消掉;
这样就可以贪心出来了,主要是这里的逻辑很不好理清;
确实巧妙!!!

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
pair<int,int> p[100050];
int main(){int n,m;scanf("%d %d",&n,&m);for(int i=0;i<m;i++){scanf("%d %d",&p[i].first,&p[i].second);}sort(p,p+m);//利用pair的默认排序int L=1;int ans=0;int r=0;for(int i=0;i<m;i++){if(r<p[i].first){//ans=max(ans,p[i].first-L);L=r+1;//先移动左区间r=p[i].second;//再移动右区间}else if(r>p[i].first){r=max(r,p[i].second);}}printf("%d\n",max(ans,n-r));//因为最后r指向的是最后的区间,所以这里需要比较一下n-r和ans 的大小return 0;
}

小sun的假期(贪心+逻辑思维)相关推荐

  1. 牛客小白月赛17 A 小sun的假期

    题意已经很明显了,但是我首先是用暴力方法先把数字离散,再用离散后的值当下标来存这个数字出现了几次 1 #include<stdio.h> 2 #include<string.h> ...

  2. 洛谷P2085ssl1411OJ1370-最小函数值【堆,贪心】

    前言 有一个东西卡了我一会 折叠N*或N+ 正整数集 (由全体正整数组成的集合) N*:={1,2,3,-,n,-} 题目 洛谷P2085 OJ1370 给出n个ai,bi,ci.定义一个函数 fi( ...

  3. 牛客小白月赛17-记录(附题解)

    正题 比赛链接:https://ac.nowcoder.com/acm/contest/1085#question 成绩 总结 除了那道积分数学其他还好 后面没有FFF题的题解 T1:小sun的假期T ...

  4. 2018SCUACM Training1 贪心

    点击打开 2018SCUACM Training1 贪心 A - LiAlH4的字符串 追求完美的LiAlH4定义了一个叫字符串完美度的东西.字符串的完美度等于它里面所有字母的完美度之和.每个字母的完 ...

  5. 【控制】贪心算法(GA,Greedy Algorithm)及 Matlab 实现

    文章目录 算法思路 应用实例 仿真 Ref. 算法思路 贪心算法一般按如下步骤进行: 建立数学模型来描述问题. 把求解的问题分成若干个子问题. 对每个子问题求解,得到子问题的局部最优解. 把子问题的解 ...

  6. uva 1614奇怪的股市(归纳法证明,贪心)

    uva 1614奇怪的股市(归纳法证明,贪心) 输入一个长度为n的序列a,满足\(1\le a_i\le i\),要求确定每个数的正负号,使得所有数的总和为0.例如a={1, 2, 3, 4},则4个 ...

  7. 2020ICPC(小米邀请赛2) - Knapsack(贪心+dp)

    题目链接:点击查看 题目大意:给出 n 个物品,每个物品都有体积和价值,现在问容量为 m 的背包最多可以装下多少价值的物品 题目分析:本题正解应该是斜率优化dp,然鹅看了大佬们的博客讲解后,感觉不是自 ...

  8. 【UVA - 10037】Bridge(过河问题,经典贪心)

    题干: 题目大意: 有N个人要过桥,每个人速度不同,只有一个手电筒,每次最多只能过去两个人,问所有人最短的过桥时间为多少 解题报告: 首先让最快的两个人最后过,然后我们分奇偶考虑,分别处理到剩下三个人 ...

  9. c语言2048项目报告,c语言----项目_小游戏2048

    2048 小游戏 主要是针对逻辑思维的一个训练. 主要学习方面:1.随机数产生的概率.2.行与列在进行移动的时候几种情况.3.messagebox的使用 #include #include #incl ...

最新文章

  1. vue 集成富文本tinymce
  2. CLR via C#学习笔记-第十三章-定义接口、继承接口
  3. liunx常用命令笔记
  4. oracle oci.dll的作用,ASP.NET bin目录中的Oracle oci.dll无法删除/不起作用
  5. DNS服务(4)Slave DNS及高级特性
  6. 一步一步写算法(之 A*算法)
  7. DbVisualizer 12.0.* Ubuntu
  8. 安卓robot自动化测试包经常用的方法
  9. linux rvm,RVM 实用指南
  10. txt文件转为excel文件
  11. AutoCAD.net 自定义窗体及面板与CAD交互时的焦点切换问题(C#)
  12. 知网论文CAJ格式免费转换成PDF,你学会了吗
  13. iOS——结构体指针
  14. 雅虎新频道Buzz截图,Digg竞争者?
  15. 字谜游戏(b)C语言
  16. 纳米数据世界杯足球基础数据,接口文档,接口api调试,数据接口演示
  17. 关于大数据相关的问答汇总,每天持续更新中哦~
  18. 如果不想当程序员,学编程有什么用?答案显而易见!
  19. 服务器ghost系统蓝屏,完美解决ghost WIN7安装后启动蓝屏问题
  20. php5.6版本帝国cms后台内容不显示,帝国cms后台编辑器显示不完整无法操作的处理方法...

热门文章

  1. jquery获取父级元素、子级元素、兄弟元素的方法
  2. 基于vue-cli3的vue项目 通过postcss-pxtorem 实现px自动转换成rem
  3. 7-3 计算平均成绩(15 分)(转载)
  4. 新版Dede采集不要在用没更新的Dede插件
  5. 采用IFDOToADOConnection 绑定数据到DataGriView
  6. 5个主流的HTML5开发工具
  7. 无线蓝牙耳机哪个品牌音质好?性价比高音质好的蓝牙耳机排行榜
  8. 满满的骚操作,通用流行框架大全
  9. 如何使用Node.js来制作电子音乐-和弦
  10. Allegro如何使用快捷键快速切换走线线宽操作指导