蓝桥杯 算法提高 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)

先存起来排序

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

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

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

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

相关推荐
@我漫长的孤独流浪12 分钟前
C算法设计与分析------程序设计代码
数据结构·c++·算法
怪侠_岭南一只猿13 分钟前
爬虫阶段一实战练习题:爬取豆瓣电影 Top250 复盘
css·经验分享·爬虫·python·学习·正则表达式
郭龙_Jack15 分钟前
TensorFlow GPU 优化配置手册
人工智能·python·tensorflow
Filotimo_17 分钟前
3.5 排序算法
数据结构·算法·排序算法
一个努力编程人17 分钟前
机器学习————GBDT算法
人工智能·算法·机器学习
深圳市恒星物联科技有限公司19 分钟前
基于图像识别算法与积水传感器的积水监测预警技术方案
人工智能·算法
HAPPY酷24 分钟前
C++ 多文件编程:声明、定义与全局变量的“黄金法则”
c++·python·技术美术
小美单片机26 分钟前
Proteus8.9安装保姆级教程
c语言·c++·算法·51单片机·proteus·大一新生
Java咩27 分钟前
LangChain 之 LCEL表达式语法
python·langchain·lcel