题目描述:

有一段长度为n(1<=n<=1000000)的数列,数列中的数字从左至右从1到n编号。初始时数列中的数字都是0。
接下来我们会对其进行m(1<=m<=100000)次操作,每次操作都会将区间[l,r]内的所有数字都变为一个特定的数字,并且每次操作这个特定的数字都不相同。
我们可以简单的认为,第一次操作时将给定区间内的数字都变为1,第二次将给定区间内数字都变为2,第三次变为3,以此类推。
在经过m次操作完成后,要求输出该数列中,拥有相同正整数(不包括0)的最长连续区间长度。
若n = 5,m = 3,原数列00000
第一次操作区间[1,3],
数列变为11100
第二次操作区间[3,4],
数列变为11220
第三次操作区间[3,5]
数列变为11333
则最长连续区间为[3,5]拥有共同正整数3,故输出其长度3。

输入:

输入包含多组测试数据,每组测试数据第一行为两个整数n,m。
接下去m行,每行两个整数l,r,表示该次操作区间为[l,r]。(1<=l<=r<=n)

输出:

对于每组测试数据输出为一个整数,表示拥有相同正整数(不包括0)的最长连续区间长度。

样例输入:
5 3
1 3
3 4
3 5
5 2
1 3
1 5
样例输出:
3
5 如果从前往后操作,费事费力。
因为保存的总是最后的结果,所以我们可以从后向前操作。
前面的操作只可以修改数列中为0的位。 为节省时间,用一个next数组记录每一位右侧第一位为0的位置
代码如下
 #include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <iostream>
#include <queue> using namespace std;
typedef pair<int, int> Opr;
Opr op[];
int num[];
int nextm[]; int main() {
int n, m;
while (scanf("%d %d", &n, &m) != EOF) {
memset(num, , sizeof(num));
for (int i = ; i <= n; i++) {
nextm[i] = i + ;
}
for (int i = ; i <= m; i++) {
scanf("%d %d", &op[i].first, &op[i].second);
}
for (int i = m; i > ; i--) {
int from = op[i].first, to = op[i].second;
for (int j = from; j <= to;) {
if (num[j] == ) {
num[j] = i;
}
int tmp = nextm[j];
nextm[j] = nextm[to];
j = tmp;
}
} /*for (int i = 1; i <= n; i++) {
printf("%d ", num[i]);
}
puts("");*/
int ans = ;
int tmp = ;
for (int i = ; i <= n+; i++) {
if (num[i] == num[i - ] && num[i] != ) {
tmp++;
}
else {
if (ans < tmp) {
ans = tmp;
}
tmp = ;
}
}
printf("%d\n", ans);
}
return ;
}

最新文章

  1. ASP.NET MVC3 模板页的使用
  2. java 22 - 8 多线程之线程生命周期图解
  3. 【CodeForces 615E】Hexagons
  4. ng-repeat指令使用详解
  5. UVa12633 Super Rooks on Chessboard(容斥 + FFT)
  6. [backbone]backbone.js
  7. spring配置定时器的时间设置
  8. SPRING IN ACTION 第4版笔记-第一章-004-用类来管理DI
  9. poj 2001 Shortest Prefixes
  10. android 类似QQ底部输入框弹出键盘和面板冲突 布局闪动处理方案(转)
  11. 仔细讲解socket(转载https://www.zybuluo.com/phper/note/47110)
  12. [国嵌笔记][031][Bootloader架构设计]
  13. Java中关于nextInt()、next()和nextLine()的理解
  14. Spring MVC 知识点记忆
  15. yield send 的一些使用细节
  16. 22)django-中间件
  17. js的模块化
  18. 关于用户登录状态存session,cookie还是数据库或者memcache的优劣
  19. 异步IO的并发能力:backlog的配置很重要
  20. for,for-each,for-in,for-of,map的比较

热门文章

  1. 洛谷 P2895 [USACO08FEB]流星雨Meteor Shower
  2. Bot Framework:Activity类简明指南
  3. UITableView设计思想 考察
  4. 从输入url到页面加载完成发生了什么详解
  5. WinForm中Timer倒计时
  6. 使用Electron开发PC客户端
  7. 【转】VC自定义消息
  8. STL 之 sort 函数使用方法
  9. 转 Spring源码剖析——核心IOC容器原理
  10. 使用三层交换配置DHCP为不同VLAN分配IP地址