牛客练习赛34-C.(前缀和)
题目描述
小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.(前缀和)相关推荐
- 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)
title: 牛客练习赛34 - C little w and Segment Coverage(思维.树状数组) date: 2018-12-15 16:36:55 tags: [树状数组,思维] ...
- 牛客练习赛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 ...
- little w and Soda 牛客练习赛34
链接:https://ac.nowcoder.com/acm/contest/297/A 来源:牛客网 四级考完了,偷偷更一篇 qwq 题解:简单推理题,自己在本子上画一画,规律就是如果钱n是偶数,就 ...
- 牛客练习赛29 题解
牛客练习赛29 A. 可持久化动态图上树状数组维护01背包 题解 这题跟标题没有任何关系- 贪心的使得负数删除的时候下标尽可能大,然后正数的时候下标尽可能小. 观察到每个数下标最大的时候就是它的初始下 ...
- E-牛牛小数点_牛客练习赛89(数学)
E-牛牛小数点_牛客练习赛89 (nowcoder.com) 题目描述 牛牛想和点点交朋友, 于是点点给了牛牛一个问题. 定义关于小数 xxx 的函数 f(x)f(x)f(x), 表示 xxx 中两个 ...
- 牛客练习赛68 A.牛牛的mex
牛客练习赛68 A.牛牛的mex 题目链接 题目描述 牛牛现在有一个长度为 nnn 的序列 a1,a2,-,ana_1,a_2,\ldots,a_na1,a2,-,an.现在牛牛有 qqq 次询 ...
- 2021牛客练习赛90
2021牛客练习赛90 B.寒冬信使 C.盾与战锤 B.寒冬信使 题目链接:https://ac.nowcoder.com/acm/contest/11180/B code: #include< ...
- 牛客练习赛76 F-phi and phi 莫比乌斯反演+差分
牛客练习赛76 F-phi and phi 莫比乌斯反演+差分 题意 思路 Code(445MS) 传送门: https://ac.nowcoder.com/acm/contest/10845/F 题 ...
- 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...
- 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
最新文章
- 【翻译】使用新的Sencha Cmd 4命令app watch
- C#版 - Leetcode49 - 字母异位词分组 - 题解
- 从ReentrantLock的实现看AQS的原理及应用
- STM32常用数据类型 u8、u16、u32
- 未来数据中心最需要的5种技能
- [BZOJ 2243] 染色
- mysql部署jar_mysql+jar踩坑记录
- java list top_Java程序员最常犯的错误盘点之Top 10
- 本地储存数据_你的爬虫数据储存在哪?MongoDB入门篇
- html绘制流程图飞线,基于jsplumb绘制流程图
- opencv imshow 窗口无响应 the window does not seem to be responding. do you want to force
- 学无止境,我还在进步
- mysqldump -extended-insert参数的使用
- sql语句查询结果合并union all用法_数据库技巧
- js页面跳转 和 js打开新窗口 方法 【转】
- Egg 2.20.0 发布,阿里开源的企业级 Node.js 框架
- Java 2实用教程(第五版)
- 网页访问报错This request has been blocked; the content must be served over HTTPS.
- MTK和Android有区别,Android系统 下一个山寨MTK的代名词
- Python网络编程(一)