链接:https://ac.nowcoder.com/acm/contest/1085/A
来源:牛客网

应肖老师要求前来更新水一水

题目描述

小 sun 非常喜欢放假,尤其是那种连在一起的长假,在放假的时候小 sun 会感到快乐,快乐值等于连着放假的天数,现在小 sun 把他的安排表告诉你,希望你告诉他在他的安排表中, 他的最大快乐值。 
当某天没有安排的时候就是放假。

输入描述:

第一行两个数n,m,代表总共有n天,m个安排。

接下来有m行,每行是一个安排l,r,代表从第l天到第r天,小sun有安排了。

安排可能会重复。

输出描述:

输出一行,在这个安排表中,小sun最大的快乐值。
示例1

输入

复制

5 1
2 3

输出

复制

备注:

数据范围:
n≤1e9,m≤1e5n\leq 1e9, m\leq 1e5n≤1e9,m≤1e5
1≤l,r≤n1 \leq l,r\leq n1≤l,r≤n
题意:

 

在一条长为n的数轴上,用m个区间覆盖这条数轴,问最长未被覆盖的数轴长度。

思路:

线段树的染色法肯定是暴毙的,由此想到暴力动动小脑瓜。

首先我们对m个区间的左端点进行排序,然后惊讶地发现只要从左到右更新最远的右端点并对未被覆盖的区间长度进行更新即可。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring> using namespace std;
const int maxn = 1e5+; struct node{
int l,r;
}a[maxn]; bool cmp(node a,node b)
{
/*if(a.l==b.l)
return a.r>b.r;
*/
return a.l<b.l;
} int main()
{
int ans=;
int lf=,rt=;
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
scanf("%d %d",&a[i].l,&a[i].r);
} sort(a+,a+m+,cmp);
/*for(int i=1;i<=m;i++)
printf("l:%d r:%d\n",a[i].l,a[i].r);*/
ans=(a[].l-);
//printf("a:%d\n",ans);
rt=a[].r;
for(int i=;i<=m;i++)
{
if(a[i].l>rt)
{
ans=max(ans,a[i].l-rt);
rt=a[i].r;
}
else
{
if(a[i].r>rt)
{
rt=a[i].r;
}
continue;
}
}
ans=max(ans,n-rt);
printf("%d\n",ans);
return ;
}

方法二:

肖老师说的pair

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <set>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
const int maxn = 1e5+; set< pair <int,int> > s; int main()
{
int ans=;
int rt=;
int n,m;
scanf("%d%d",&n,&m);
int l,r;
for(int i=;i<=m;i++)
{
scanf("%d %d",&l,&r);
s.emplace(l,r);
}
for(auto i : s)
{
if(i.first>rt)
{
ans=max(ans,i.first-rt);
rt=i.second;
}
else
{
if(i.second>rt)
{
rt=i.second;
}
continue;
}
}
ans=max(ans,n-rt);
printf("%d\n",ans); return ;
}

本质上是一样的东西,set+emplace跑的并没有更快?

小sun的假期【牛客】的更多相关文章

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

    传送门 题意: 第一行两个数n,m,代表总共有n天,m个安排.接下来有m行,每行是一个安排l,r,代表从第l天到第r天,小sun有安排了.安排可能会重复. 小 sun 非常喜欢放假,尤其是那种连在一起 ...

  2. 第k小团+bitset优化——牛客多校第2场D

    模拟bfs,以空团为起点,用堆维护当前最小的团,然后进行加点更新 在加入新点时要注意判重,并且用bitset来加速判断和转移构造 #include<bits/stdc++.h> #incl ...

  3. 牛客跨年AK场-小sum的假期安排

    链接:https://ac.nowcoder.com/acm/contest/3800/G来源:牛客网 题目描述 小 sun 非常喜欢放假,尤其是那种连在一起的长假,在放假的时候小 sun 会感到快乐 ...

  4. 牛客小白月赛13 小A买彩票 (记忆化搜索)

    链接:https://ac.nowcoder.com/acm/contest/549/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...

  5. 牛客小白月赛13-J小A的数学题 (莫比乌斯反演)

    链接:https://ac.nowcoder.com/acm/contest/549/J来源:牛客网 题目描述 小A最近开始研究数论题了,这一次他随手写出来一个式子,∑ni=1∑mj=1gcd(i,j ...

  6. 牛客OI周赛7-提高组 A 小睿睿的等式

    链接:https://ac.nowcoder.com/acm/contest/371/A来源:牛客网 小睿睿在游戏开始时有n根火柴棒,他想知道能摆成形如“A+B=n”的等式且使用的火柴棒数也恰好等于n ...

  7. 牛客小白月赛13 小A的柱状图(单调栈)

    链接:https://ac.nowcoder.com/acm/contest/549/H来源:牛客网 题目描述 柱状图是有一些宽度相等的矩形下端对齐以后横向排列的图形,但是小A的柱状图却不是一个规范的 ...

  8. 牛客小白月赛13 小A的回文串(Manacher)

    链接:https://ac.nowcoder.com/acm/contest/549/B来源:牛客网 题目描述 小A非常喜欢回文串,当然我们都知道回文串这种情况是非常特殊的.所以小A只想知道给定的一个 ...

  9. 牛客小白月赛13 小A的最短路(lca+RMQ)

    链接:https://ac.nowcoder.com/acm/contest/549/F来源:牛客网 题目描述 小A这次来到一个景区去旅游,景区里面有N个景点,景点之间有N-1条路径.小A从当前的一个 ...

随机推荐

  1. UWP通过机器学习加载ONNX进行表情识别

    首先我们先来说说这个ONNX ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型.它使得不同的人工智能框架(如Pytorch, MXNet)可以采用相同格式存储模型数据并交互. ...

  2. Android布局管理器-使用FrameLayout帧布局管理器显示层叠的正方形以及前景照片

    场景 Android布局管理器-使用LinearLayout实现简单的登录窗口布局: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details ...

  3. SVN状态图标不显示的解决办法

    第一步:检查设置 右键->TortoiseSVN->setting->Icon Overlays->Status cache->default/Shell.或者 右键-& ...

  4. python函数的使用

    python函数的使用 制作人:全心全意 函数的定义 def 函数名(参数): 函数体 参数的使用 def 函数名(a): 函数体 函数名(5) 默认函数 def 函数名(a=5): 函数体 函数名( ...

  5. import,export深入理解

    export 最正常: var firstName = 'Michael'; var lastName = 'Jackson'; var year = 1958; export { firstName ...

  6. python + excel工资条自动生成

    年终绩效分配结果出来了,领导要求每人要清楚地知道自己的情况.要求:总绩效和各分类都要清楚.这就表示我们要给每人六个纸条,一个总的,五个分的.打出来,裁开,分发给每个人!累死人.所以,我就想能否每人生成 ...

  7. java Socket通信,客户端与服务端相互发消息

    1.通信过程 网络分为应用层,http.ssh.telnet就是属于这一类,建立在传输层的基础上.其实就是定义了各自的编码解码格式,分层如下: 2.Socket连接 上述通信都要先在传输层有建立连接的 ...

  8. 【读书笔记】自然语言处理综述 -- 第四章 -- N元语法

    第四章 N元语法 本章开篇的两句话很有意思,代表了当时两个学派的思想和矛盾. 一句是"有史以来最伟大的语言学家"乔姆斯基说的:"句子的概率,在任何已知的对于这个术语的解释 ...

  9. Win10桌面菜单弹出cmd解决办法

    现象 Win10右键菜单打开弹出命令提示符 原有个性化.显示设置.网络和Internet设置无法使用 解决 注册表定位到HKEY_CURRENT_USER\Software\Classes\ ms-s ...

  10. oracke数据库分区新增

    1.发现一些过程执行报错,报错原因是'ora-14400插入的分区关键字未映射到任何分区',原来是2020年库表的时间子分区未扩展: 2.扩展子分区的语句是 ALTER TABLE 表名 MODIFY ...