小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从当前的一个 ...
随机推荐
- 2019IT运维大会上海站 智和信通解析等保2.0支撑
2019IT运维大会上海站 智和信通解析等保2.0支撑 2019年11月14日上午8:30-12:10,上海锦荣国际大酒店二层锦荣厅
- 学会这一招,小白也能使用数据可视化BI软件创建医院数据实时展示大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以医院数据实时展示大屏为例 ...
- PPT导出为图片
使用Aspose组件导出 Aspose有Aspose.Slides.dll,可以无需安装office,进行读写PPT文件. Aspose可能通过Aspose.Slides.NET安装 简单的导出图片d ...
- Eclipse+ADT+Android SDK搭建安卓开发环境
第一步:打开[Android.rar]压缩包,如图所示[评论区回复我,压缩包地址] 第二步:配置环境变量 (1) 解压[android-sdk_r24.4.1-windows.zip]压缩包 (2) ...
- 发布到IIS的php网站,所有的页面打开都是空白,目录权限问题,已解决
查了下,html可以打开,百度下原因,是网站目录没有写权限所致,修改下权限正常显示
- 如何在 vue 中添加权限控制管理?---vue中文社区
前言 在一个项目中,一些功能会涉及到重要的数据管理,为了确保数据的安全,我们会在项目中加入权限来限制每个用户的操作.作为前端,我们要做的是配合后端给到的权限数据,做页面上的各种各样的限制. 需求 因为 ...
- 如何使用 Vue-TCB 快速在 Vue 应用中接入云开发
什么是 Vue TCB 我自己平时经常会用到 Vue 来开发前端应用.所以,基于 Vue 的插件系统,封装了一个 Vue 插件. 如何使用 1. 安装 vue-tcb 执行如下命令,安装 vue-tc ...
- #6041. 「雅礼集训 2017 Day7」事情的相似度 [set启发式合并+树状数组扫描线]
SAM 两个前缀的最长后缀等价于两个点的 \(len_{lca}\) , 题目转化为求 \(l \leq x , y \leq r\) , \(max\{len_{lca(x,y)}\}\) // p ...
- AGC011-C Squared Graph
题意 给定一个\(n\)个点\(m\)条边的图,构建一个\(n^2\)个点的图,新图的每个点都可以看成一个二元组,新图上的点\((a,b)和(a′,b′)\)之间有边,当且仅当原图中\((a,a′), ...
- Docker--数据管理之Volumes
前言:我们知道docker容器内产生或修改的数据仅在该容器内有效,即容器关闭,其之前产生或修改的数据也就删除了,这明显不能满足我们大多数场景的需求.当然这只是默认,docker为我们提供了多种保存数据 ...