赞
踩
目录
线段相交具有可重复贡献性:整个区间的交等价于把区间分为若干部分,分别求交再求交
那么我们只需维护每个线段的前后缀区间的线段交
然后枚举删除的线段,删除后的最大线段交就是前缀交线段和后缀交线段的交
时间复杂度: O(n) 空间复杂度:O(n)
- import sys
- from math import inf
- # sys.stdin = open('in.txt', 'r')
-
- input = lambda: sys.stdin.readline().strip()
- write = lambda x: sys.stdout.write(str(x))
-
- n = int(input())
- lines = [tuple(map(int, input().split())) for _ in range(n)]
-
- prel, prer = [-inf] * n, [inf] * n
-
- for i in range(1, n):
- prel[i] = max(lines[i - 1][0], prel[i - 1])
- prer[i] = min(lines[i - 1][1], prer[i - 1])
- sufl, sufr = -inf, inf
-
- ans = 0
-
- for i in range(n - 1, -1, -1):
- ans = max(ans, min(sufr, prer[i]) - max(sufl, prel[i]))
- sufl = max(sufl, lines[i][0])
- sufr = min(sufr, lines[i][1])
- write(ans)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。