当前位置:网站首页>1018.值周
1018.值周
2022-08-09 22:05:00 【SY_XLR】
题目描述
JC内长度为L的马路上有一些值周同学,每两个相邻的同学之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,…L,都有一个值周同学。 由于水宝宝有用一些区间来和ssy搞事情,所以为了避免这种事走漏风声,水宝宝要踹走一些区域的人。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的人(包括区域端点处的两个人)赶走。你的任务是计算将这些人都赶走后,马路上还有多少个人。
输入描述:
第一行有2个整数L和M,L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。 接下来的M行每行包含2个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标
输出描述:
1个整数,表示马路上剩余的人的数目。
示例1
输入
500 3 150 300 100 200 470 471
输出
298
说明
对于所有的数据,1≤L≤100000000 对于10%的数据,1<=M<=100 对于20%的数据,1<=M<=1000 对于50%的数据,1<=M<=100000 对于100%的数据,1<=M<=1000000
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int l,m,ans = 0,x,y,i;
cin >> l >> m;
vector<int> v1(l+5,0),v2(l+5,0);
//v1有树时为0,v2差分
for(i = 1;i <= m;i++)
{
cin >> x >> y;
v2[x]++;
v2[y+1]--;
}
v1[0] = v2[0];
if(v1[0] == 0) {
ans++;
}
for(i = 1;i <= l;i++)
{
v1[i] = v1[i-1]+v2[i];
if(v1[i] == 0) {
ans++;
}
}
cout << ans;
return 0;
}
边栏推荐
猜你喜欢
随机推荐
ArrayList 和 LinkedList 区别
少儿编程 电子学会图形化编程等级考试Scratch三级真题解析(判断题)2022年6月
深度学习100例 —— 循环神经网络(RNN)实现股票预测
关于ETL的两种架构(ETL架构和ELT架构)
leetcode:321. 拼接最大数
leetcode:332. 重新安排行程
“我“是一名测试/开发程序员,小孙的内心独白......
D. Binary String To Subsequences
杂谈——程序员的悲哀
chart.js面积图曲线图统计插件
OKR 锦囊妙计
leetcode brush questions diary Calculate the number of elements on the right that is less than the current element
Users should clearly know that quantitative trading is not a simple procedure
UNI-APP_监听页面滚动h5监听页面滚动
Under the NVM node installation;The node environment variable configuration
阿里云架构师金云龙:基于云XR平台的视觉计算应用部署
shell学习
leetcode:319. 灯泡开关
OFDM 十六讲 7 - Inter-Symbol-Interference
xctf攻防世界 Web高手进阶区 shrine