【蓝桥杯集训·每日一题2025】 AcWing 5526. 平衡细菌 python

AcWing 5526. 平衡细菌

Week 3
3月4日

题目描述

农夫约翰有 N N N 块草地排成一行,其中草地 i i i 的细菌水平与健康草的细菌水平相差 a i a_i ai。

例如,如果 a i = − 3 a_i=−3 ai=−3,则草地 i i i 的细菌水平比正常水平低 3 3 3,需要额外添加恰好 3 3 3 个单位的细菌才能将其提高到被认为是健康的程度。

农夫约翰想要确保每一块草地都被修复至健康的细菌水平。

方便的是,他有两种品牌的农药可以喷洒在他的田地里,一种可以添加细菌,另一种可以去除细菌。

当农夫约翰喷洒任一类型的农药时,他站在草地 N N N(最右边的草地)并为他的喷雾器选择功率等级 L L L( 1 ≤ L ≤ N 1 \le L \le N 1≤L≤N)。

喷雾器对靠近农夫约翰的草地效果最大,随着距离增加效果逐渐减弱。

如果农夫约翰选择添加细菌的农药,则 L L L 单位的细菌将被添加至草地 N N N, L − 1 L−1 L−1 单位添加至草地 N − 1 N−1 N−1, L − 2 L−2 L−2 单位添加至草地 N − 2 N−2 N−2,以此类推。

草地 1 ... N − L 1...N−L 1...N−L 不会得到任何细菌,因为喷雾器设置的功率不足以到达它们。

类似地,如果农夫约翰选择去除细菌的农药,则 L L L 单位的细菌将被从草地 N N N 去除, L − 1 L−1 L−1 单位被从草地 N − 1 N−1 N−1 去除,以此类推。

同样,草地 1 ... N − L 1...N−L 1...N−L 将不受影响。

求农夫约翰使用喷雾器的最少次数,使得每块草地都具有健康草的推荐细菌值。

输入保证答案不超过 1 0 9 10^9 109。

输入格式

输入的第一行包含 N N N。

第二行包含 N N N 个整数 a 1 ... a N a_1...a_N a1...aN,为每块草地的初始细菌水平。

输出格式

输出一个整数,为使每块草地都具有健康草的推荐的细菌值所需使用喷雾器的最少次数。

数据范围

1 ≤ N ≤ 2 × 1 0 5 1 \le N \le 2 \times 10^5 1≤N≤2×105,
− 1 0 15 ≤ a i ≤ 1 0 15 -10^{15} \le a_i \le 10^{15} −1015≤ai≤1015

输入样例1:
复制代码
2
-1 3
输出样例1:
复制代码
6
样例1解释

使用去除细菌的农药,功率等级为 1 1 1,使用五次。

然后使用添加细菌的农药,功率等级为 2 2 2,使用一次。

输入样例2:
复制代码
5
1 3 -2 -7 5
输出样例2:
复制代码
26

等差数列差分


AC_code

python 复制代码
n = int(input())  
a = list(map(int, input().split()))  
  
diff = [0] * n  
diff[0] = a[0]  
for i in range(1, n):  
    diff[i] = a[i] - a[i - 1]  
  
diff2 = [0] * n  
diff2[0] = diff[0]  
for i in range(1, n):  
    diff2[i] = diff[i] - diff[i - 1]  
  
ans = 0  
for i in range(n):  
    ans += abs(diff2[i])  
print(ans)

END
如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢谢

相关推荐
Ashley_Amanda几秒前
Python 常见问题梳理
开发语言·windows·python
机器学习之心2 分钟前
198种组合算法+优化TCN-Transformer+SHAP分析+新数据预测+多输出!深度学习可解释分析,强烈安利,粉丝必备!
深度学习·算法·transformer·shap分析·新数据预测
狐573 分钟前
2026-01-12-LeetCode刷题笔记-1266-访问所有点的最小时间.md
笔记·算法·leetcode
Gorgous—l3 分钟前
数据结构算法学习:LeetCode热题100-栈篇(有效的括号、最小栈、字符串解码、每日温度、柱状图中最大的矩形)
数据结构·学习·算法
比奇堡的猪猪4 分钟前
修改默认conda环境(在win中)
python·conda
小郭团队5 分钟前
教育公平的探索
大数据·人工智能·嵌入式硬件·算法·硬件架构
瑞雨溪9 分钟前
力扣题解:740.删除并获得点数
算法·leetcode·职场和发展
LeeeX!11 分钟前
基于YOLO11实现明厨亮灶系统实时检测【多场景数据+模型训练、推理、导出】
深度学习·算法·目标检测·数据集·明厨亮灶
红队it13 分钟前
【Spark+Hadoop】基于spark+hadoop游戏评论数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅
大数据·hadoop·分布式·算法·游戏·数据分析·spark
程序员-King.13 分钟前
day125—二分查找—寻找峰值(LeetCode-162)
算法·leetcode·职场和发展