当前位置:   article > 正文

前后缀分离,CF1209 C. Maximal Intersection_ojsq9q

ojsq9q

目录

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

二、解题报告

1、思路分析

2、复杂度

3、代码详解


一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

Problem - 1029C - Codeforces


二、解题报告

1、思路分析

线段相交具有可重复贡献性:整个区间的交等价于把区间分为若干部分,分别求交再求交

那么我们只需维护每个线段的前后缀区间的线段交

然后枚举删除的线段,删除后的最大线段交就是前缀交线段和后缀交线段的交

2、复杂度

时间复杂度: O(n) 空间复杂度:O(n)

3、代码详解

  1. import sys
  2. from math import inf
  3. # sys.stdin = open('in.txt', 'r')
  4. input = lambda: sys.stdin.readline().strip()
  5. write = lambda x: sys.stdout.write(str(x))
  6. n = int(input())
  7. lines = [tuple(map(int, input().split())) for _ in range(n)]
  8. prel, prer = [-inf] * n, [inf] * n
  9. for i in range(1, n):
  10. prel[i] = max(lines[i - 1][0], prel[i - 1])
  11. prer[i] = min(lines[i - 1][1], prer[i - 1])
  12. sufl, sufr = -inf, inf
  13. ans = 0
  14. for i in range(n - 1, -1, -1):
  15. ans = max(ans, min(sufr, prer[i]) - max(sufl, prel[i]))
  16. sufl = max(sufl, lines[i][0])
  17. sufr = min(sufr, lines[i][1])
  18. write(ans)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/517926
推荐阅读
相关标签
  

闽ICP备14008679号