题目描述

小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

思路:挺简单的一道题,但容易被套进往模板靠的固化思维,可以用线段树和树状数组做,但是完全没必要。针对题意,可以试着转变一下,多重覆盖的地方是没有意义的,因为拿去一层还有,所有对我们有用的只有覆盖一次的区域。在输入的时候用前缀和数组标记,再遍历一下,统计空白部分以及每次取走后能增加的数量取最值即可。

代码如下:

#include <cstring>
#include <iostream>
#include <algorithm>
#define per(i,a,b) for(int i=a;i<=b;++i)
using namespace std;
struct node{int x;int y;
}p[100010];
int main()
{int n,m,s,k,a[100010];while(scanf("%d%d",&n,&m)!=EOF){s=0;memset(a,0,sizeof(a));per(i,0,m-1){scanf("%d%d",&p[i].x,&p[i].y);a[p[i].x]++;a[p[i].y+1]--;}per(i,1,n) a[i]+=a[i-1]; per(i,1,n){if(a[i]==0) s++;//记录空白区域数量if(a[i]!=1) a[i]=0;//多重覆盖无意义a[i]+=a[i-1];//前缀和}k=0;per(i,1,m-1){if(a[p[i].y]-a[p[i].x-1]<=a[p[k].y]-a[p[k].x-1]) k=i;//找最值}printf("%d %d\n",k+1,a[p[k].y]-a[p[k].x-1]+s);}return 0;
}

牛客练习赛34-C.(前缀和)相关推荐

  1. 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)

    title: 牛客练习赛34 - C little w and Segment Coverage(思维.树状数组) date: 2018-12-15 16:36:55 tags: [树状数组,思维] ...

  2. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

  3. little w and Soda 牛客练习赛34

    链接:https://ac.nowcoder.com/acm/contest/297/A 来源:牛客网 四级考完了,偷偷更一篇 qwq 题解:简单推理题,自己在本子上画一画,规律就是如果钱n是偶数,就 ...

  4. 牛客练习赛29 题解

    牛客练习赛29 A. 可持久化动态图上树状数组维护01背包 题解 这题跟标题没有任何关系- 贪心的使得负数删除的时候下标尽可能大,然后正数的时候下标尽可能小. 观察到每个数下标最大的时候就是它的初始下 ...

  5. E-牛牛小数点_牛客练习赛89(数学)

    E-牛牛小数点_牛客练习赛89 (nowcoder.com) 题目描述 牛牛想和点点交朋友, 于是点点给了牛牛一个问题. 定义关于小数 xxx 的函数 f(x)f(x)f(x), 表示 xxx 中两个 ...

  6. 牛客练习赛68 A.牛牛的mex

    牛客练习赛68 A.牛牛的mex 题目链接 题目描述 牛牛现在有一个长度为 nnn 的序列 a1,a2,-,ana_1,a_2,\ldots,a_na1​,a2​,-,an​.现在牛牛有 qqq 次询 ...

  7. 2021牛客练习赛90

    2021牛客练习赛90 B.寒冬信使 C.盾与战锤 B.寒冬信使 题目链接:https://ac.nowcoder.com/acm/contest/11180/B code: #include< ...

  8. 牛客练习赛76 F-phi and phi 莫比乌斯反演+差分

    牛客练习赛76 F-phi and phi 莫比乌斯反演+差分 题意 思路 Code(445MS) 传送门: https://ac.nowcoder.com/acm/contest/10845/F 题 ...

  9. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  10. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

最新文章

  1. 【翻译】使用新的Sencha Cmd 4命令app watch
  2. C#版 - Leetcode49 - 字母异位词分组 - 题解
  3. 从ReentrantLock的实现看AQS的原理及应用
  4. STM32常用数据类型 u8、u16、u32
  5. 未来数据中心最需要的5种技能
  6. [BZOJ 2243] 染色
  7. mysql部署jar_mysql+jar踩坑记录
  8. java list top_Java程序员最常犯的错误盘点之Top 10
  9. 本地储存数据_你的爬虫数据储存在哪?MongoDB入门篇
  10. html绘制流程图飞线,基于jsplumb绘制流程图
  11. opencv imshow 窗口无响应 the window does not seem to be responding. do you want to force
  12. 学无止境,我还在进步
  13. mysqldump -extended-insert参数的使用
  14. sql语句查询结果合并union all用法_数据库技巧
  15. js页面跳转 和 js打开新窗口 方法 【转】
  16. Egg 2.20.0 发布,阿里开源的企业级 Node.js 框架
  17. Java 2实用教程(第五版)
  18. 网页访问报错This request has been blocked; the content must be served over HTTPS.
  19. MTK和Android有区别,Android系统 下一个山寨MTK的代名词
  20. Python网络编程(一)

热门文章

  1. Unity中实现3D拾取功能及其原理
  2. 利用 0day 双杀-java 环境-宏感染-安卓客户端渗透
  3. faster rcnn理论讲解
  4. 广袤之中:沿着克拉克三大定律,读懂华为的最深期待
  5. 笔记本插入耳机声音外放
  6. LOJ-10102(桥的判断)
  7. 【HLA】初识HLA/RTI
  8. 债券久期为什么难理解
  9. 超详细的LSA内容解析及SPF算法分析,一看就懂
  10. 正/负相比例放大中压摆率对电路带宽的影响分析