【牛客 - 297C】little w and Segment Coverage(差分数组,区间差分,思维,卡线段树)☆
题干:
小w有m条线段,编号为1到m。
用这些线段覆盖数轴上的n个点,编号为1到n。
第i条线段覆盖数轴上的区间是L[i],R[i]。
覆盖的区间可能会有重叠,而且不保证m条线段一定能覆盖所有n个点。
现在小w不小心丢失了一条线段,请问丢失哪条线段,使数轴上没被覆盖到的点的个数尽可能少,请输出丢失的线段的编号和没被覆盖到的点的个数。如果有多条线段符合要求,请输出编号最大线段的编号(编号为1到m)。
输入描述:
第一行包括两个正整数n,m(1≤n,m≤10^5)。
接下来m行,每行包括两个正整数L[i],R[i](1≤L[i]≤R[i]≤n)。
输出描述:
输出一行,包括两个整数a b。
a表示丢失的线段的编号。
b表示丢失了第a条线段后,没被覆盖到的点的个数。
示例1
输入
复制
5 3
1 3
4 5
3 4
输出
复制
3 0
说明
若丢失第1条线段,1和2没被线段覆盖到。
若丢失第2条线段,5没被线段覆盖到。
若丢失第3条线段,所有点都被线段覆盖到了。
示例2
输入
复制
6 2
1 2
4 5
输出
复制
2 4
说明
若丢失第1条线段,1,2,3,6没被线段覆盖到。
若丢失第2条线段,3,4,5,6没被线段覆盖到。
题目大意:
给你1..n长度的总区间,外加m条线段(可能没有覆盖所有1~n的点)。问去掉哪一条线段 使得总区间未被覆盖的点最少。
输出那一条线段的编号,并且输出未被覆盖的点的个数。
解题报告:
因为是最后查询,求个差分,,,就行了。
AC代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
int l[MAX],r[MAX];
int d[MAX];
int a[MAX];
int sum[MAX];
int main()
{int n,m;cin>>n>>m;for(int i = 1; i<=m; i++) {scanf("%d %d",l+i,r+i);d[l[i]]++;d[r[i]+1]--;}int zeros=0;for(int i = 1; i<=n; i++) {a[i] = a[i-1] + d[i];if(a[i]==0) zeros++;}for(int i = 1; i<=n; i++) {sum[i] = sum[i-1] + (a[i]==1);}int minn = 0x3f3f3f3f,id;for(int i = m; i>=1; i--) {if(sum[r[i]]-sum[l[i]-1] < minn) {id = i;minn = sum[r[i]]-sum[l[i]-1];}}printf("%d %d\n",id,minn+zeros);return 0 ;}
【牛客 - 297C】little w and Segment Coverage(差分数组,区间差分,思维,卡线段树)☆相关推荐
- 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)
title: 牛客练习赛34 - C little w and Segment Coverage(思维.树状数组) date: 2018-12-15 16:36:55 tags: [树状数组,思维] ...
- 牛客题霸 [在转动过的有序数组中寻找目标值] C++题解/答案
牛客题霸 [在转动过的有序数组中寻找目标值] C++题解/答案 题目描述 给出一个转动过的有序数组,你事先不知道该数组转动了多少 (例如,0 1 2 4 5 6 7可能变为4 5 6 7 0 1 2) ...
- 牛客题霸 [合并两个有序的数组] C++题解/答案
牛客题霸 [合并两个有序的数组] C++题解/答案 题目描述 给出两个有序的整数数组 和 ,请将数组 合并到数组 中,变成一个有序的数组 注意: 可以假设 数组有足够的空间存放 数组的元素, 和 中初 ...
- E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解)
E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解) 链接:https://ac.nowcoder.com/acm/contest ...
- little w and Segment Coverage(差分)
链接:https://ac.nowcoder.com/acm/contest/297/C 来源:牛客网 题目描述 小w有m条线段,编号为1到m. 用这些线段覆盖数轴上的n个点,编号为1到n. 第i条线 ...
- 牛客小白月赛12 H 华华和月月种树 (离线dfs序+线段树)
链接:https://ac.nowcoder.com/acm/contest/392/H 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语言2621 ...
- [C++] 牛客网:合并两个有序的数组
主要是体验一下牛客网里的核心代码模式到底是怎么弄的..还有C++这个东西平常用的太少了,试一试. 以外的还体验到了sort()函数的使用. 来源:牛客网 题目链接:合并两个有序的数组 知识点:数组.双 ...
- 【2019牛客暑期多校训练营(第二场)- E】MAZE(线段树优化dp,dp转矩阵乘法,线段树维护矩阵乘法)
题干: 链接:https://ac.nowcoder.com/acm/contest/882/E?&headNav=acm 来源:牛客网 Given a maze with N rows an ...
- 【牛客 - 551C】CSL 的密码(后缀数组,后缀自动机,随机算法)
题干: 链接:https://ac.nowcoder.com/acm/contest/551/C 来源:牛客网 为了改变这一点,他决定重新设定一个密码.于是他随机生成了一个很长很长的字符串,并打算选择 ...
- 牛客小白月赛8: I. 路灯孤影(区间DP)
链接:https://www.nowcoder.com/acm/contest/214/I 来源:牛客网 题目描述 clccle孤独地走在回家的路上,因为她已经知道可能要退役了,这时,她注意到路灯出了 ...
最新文章
- php dw文件上传下载,使用PHP实现文件上传
- JAVA的String的实现
- Mysql order by与limit混用陷阱
- 服务器无显示器,服务器无显示器 远程桌面
- java导出excel 科学计数法_基于Java将Excel科学计数法解析成数字
- python加载模型_解决python 无法加载downsample模型的问题
- 【AI+餐饮】人工智能进军餐饮:AI 调酒,越喝越有
- VMware安装ubuntu中几个问题的解决——VMware Tools
- 快速突破面试算法之数学运算篇
- 不完全遍历Csrss进程中的句柄表
- java抖音字符视频_代码生成抖音文字视频
- c语言程序漏洞分析,C语言源程序的缓冲区溢出漏洞分析及解决方案.pdf
- Pyton入门的歪路
- 积分商城系统业务逻辑思维导图_怎么开发积分商城系统_OctShop
- 水上乐园设备的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 2020平面设计新手入门技巧
- 【高并发】- 指标介绍
- Word论文写作公式居中、编号右对齐设置
- 英语美文-不做有才华的穷人
- strcpy和strncpy的区别
热门文章
- [Leetcode][第1025题][JAVA][除数博弈][数学][递推]
- [Leetcode][JAVA][第20题][Stack][Map]
- 恒压板框过滤实验数据处理_高考化学实验中:那些不常见的【特殊仪器】与装置,难得的资料...
- c语言pwm调制方式,pwm调制原理同步调制_几种pwm调制方式介绍 - 全文
- mysql to mssql_MysqlToMsSql
- PHP伪造来源HTTP,伪造来源采集http.php
- 小红书笔记_小红书的沙雕笔记,害人不浅啊
- oracle jdbc jar包_Oracle总结之plsql编程(基础七)
- cat命令详解_好程序员Python培训之详解eval好与坏
- dropzonejs vue 使用_如何在Dropzone上手动触发上传文件事件