蓝桥杯 算法提高 ADV-1162 阴谋 python AC

keyword:数组、排序

python 复制代码
n = int(input())
d = {}
for _ in range(n):
    a, b = map(int, input().split())
    if (a in d and d[a] < b) or a not in d:
        d[a] = b
d = sorted(d.items(), key=lambda x: x[0])
ans = 0
l, r = d[0][0], d[0][1]
for i, j in d[1:]:
    if i <= r:
        if j > r:
            r = j
    else:
        ans += r - l
        l, r = i, j
ans += r - l
print(ans)

先存起来排序

每种情况分别判断下一段区间:

--下一段左区间在当前区间内,合并两段区间,更新右区间为两段最大的右区间

--下一段左区间在当前区间外,把当前区间长度累加到变量中,更新左右区间为下一段左右区间

坑点是题目说左闭右闭,实际上是左闭右开

相关推荐
云姜.8 小时前
YAML简单使用
python
喵手8 小时前
Python爬虫实战:手把手教你Python 自动化构建志愿服务岗位结构化数据库!
爬虫·python·自动化·数据采集·爬虫实战·零基础python爬虫教学·志愿服务岗位结构数据库打造
chushiyunen8 小时前
python numpy包的使用
开发语言·python·numpy
小邓睡不饱耶8 小时前
Python多线程爬虫实战:爬取论坛帖子及评论
开发语言·爬虫·python
张辰宇-8 小时前
AcWing 5 多重背包问题 II
算法
喵手8 小时前
Python爬虫实战:手把手教你如何采集开源字体仓库目录页(Google Fonts / 其他公开字体目录)!
爬虫·python·自动化·数据采集·爬虫实战·零基础python爬虫教学·开源字体仓库目录页采集
小则又沐风a9 小时前
类和对象(C++)---上
java·c++·算法
Chase_______9 小时前
【Python 基础】第2章:流程控制完全指南(if/match/while/for)
python
季明洵9 小时前
动态规划及背包问题
java·数据结构·算法·动态规划·背包问题
第一程序员9 小时前
Python高级特性详解:从基础到进阶
python·github