小sun的假期【牛客】
链接:https://ac.nowcoder.com/acm/contest/1085/A
来源:牛客网
应肖老师要求前来更新水一水
题目描述
输入描述:
第一行两个数n,m,代表总共有n天,m个安排。 接下来有m行,每行是一个安排l,r,代表从第l天到第r天,小sun有安排了。 安排可能会重复。
输出描述:
输出一行,在这个安排表中,小sun最大的快乐值。
备注:
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的假期【牛客】的更多相关文章
- 牛客小白月赛17 A 小sun的假期
传送门 题意: 第一行两个数n,m,代表总共有n天,m个安排.接下来有m行,每行是一个安排l,r,代表从第l天到第r天,小sun有安排了.安排可能会重复. 小 sun 非常喜欢放假,尤其是那种连在一起 ...
- 第k小团+bitset优化——牛客多校第2场D
模拟bfs,以空团为起点,用堆维护当前最小的团,然后进行加点更新 在加入新点时要注意判重,并且用bitset来加速判断和转移构造 #include<bits/stdc++.h> #incl ...
- 牛客跨年AK场-小sum的假期安排
链接:https://ac.nowcoder.com/acm/contest/3800/G来源:牛客网 题目描述 小 sun 非常喜欢放假,尤其是那种连在一起的长假,在放假的时候小 sun 会感到快乐 ...
- 牛客小白月赛13 小A买彩票 (记忆化搜索)
链接:https://ac.nowcoder.com/acm/contest/549/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...
- 牛客小白月赛13-J小A的数学题 (莫比乌斯反演)
链接:https://ac.nowcoder.com/acm/contest/549/J来源:牛客网 题目描述 小A最近开始研究数论题了,这一次他随手写出来一个式子,∑ni=1∑mj=1gcd(i,j ...
- 牛客OI周赛7-提高组 A 小睿睿的等式
链接:https://ac.nowcoder.com/acm/contest/371/A来源:牛客网 小睿睿在游戏开始时有n根火柴棒,他想知道能摆成形如“A+B=n”的等式且使用的火柴棒数也恰好等于n ...
- 牛客小白月赛13 小A的柱状图(单调栈)
链接:https://ac.nowcoder.com/acm/contest/549/H来源:牛客网 题目描述 柱状图是有一些宽度相等的矩形下端对齐以后横向排列的图形,但是小A的柱状图却不是一个规范的 ...
- 牛客小白月赛13 小A的回文串(Manacher)
链接:https://ac.nowcoder.com/acm/contest/549/B来源:牛客网 题目描述 小A非常喜欢回文串,当然我们都知道回文串这种情况是非常特殊的.所以小A只想知道给定的一个 ...
- 牛客小白月赛13 小A的最短路(lca+RMQ)
链接:https://ac.nowcoder.com/acm/contest/549/F来源:牛客网 题目描述 小A这次来到一个景区去旅游,景区里面有N个景点,景点之间有N-1条路径.小A从当前的一个 ...
随机推荐
- 一起了解 .Net Foundation 项目 No.7
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Entity Framew ...
- git系列之---工作中项目的常用git操作
0.本地git的安装 官网下载 1.git 配置 git config user.name 查看 用户名 git config user.email 查看 邮箱 git config --glo ...
- Java高级项目实战02:客户关系管理系统CRM系统模块分析与介绍
本文承接上一篇:Java高级项目实战之CRM系统01:CRM系统概念和分类.企业项目开发流程 先来CRM系统结构图: 每个模块作用介绍如下: 1.营销管理 营销机会管理:针对企业中客户的质询需求所建立 ...
- 回到未来:Smalltalk 编程系统
Smalltalk 是19世纪70年代由 Alan Kay 设计的,第一个以面向对象(Object-Orientation)为主要范式的编程语言 1.Smalltalk 具有大量首创的特性,深刻影响了 ...
- 「Flink」事件时间与水印
我们先来以滚动时间窗口为例,来看一下窗口的几个时间参数与Flink流处理系统时间特性的关系. 获取窗口开始时间Flink源代码 获取窗口的开始时间为以下代码: org.apache.flink.str ...
- JS DOM属性,包括固有属性和自定义属性,以及属性获取、移除和设置
属性分为固有属性property和自定义属性attribute 固有属性查看 固有属性可以通过ele.property 来获取,自定义属性不行 <!DOCTYPE html> <ht ...
- python命令行运行django项目, can't open file 'manage.py' 问题解决
找到manage.py的绝对路径即可运行
- 通过/dev/mem操作物理内存
/dev/mem设备可以用来访问物理内存.下面一段应用程序的代码,实现了通过/dev/mem对物理内存空间中SRAM1的访问. #include <stdio.h> #include &l ...
- Django基础一Web框架的本质
我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求, ...
- MySQL概述及入门(二)
MySql概述及入门(二) MySQL架构 逻辑架构图: 执行流程图: MySQL的存储引擎 查询数据库支持的存储引擎 执行: show engines: 多存储引擎是mysql有别于其他数据库的一大 ...