
D. Riverside Curio
正向遍历:从第一天开始,计算每一天的总标记数 反向遍历:从最后一天开始,调整前几天的总标记数,使得相邻两天的标记数差不超过1。 计算最小总和:根据每一天的总标记数和当前天数的标记数,计算每天在水位下方的标记数,累加得到最小总和。 读取输入:读取天数 初始化标记数数组 正向遍历:从第二天开始,计算每一天的总标记数,确保总标记数不少于前一天的标记数。 反向调整:从倒数第二天开始,调整前几天的标记数,使得相邻两天的标记数差不超过1。 计算最小总和:累加每天在水位下方的标记数,输出最小总和。
发布日期:2021-05-08 03:35:25
浏览次数:32
分类:精选文章
本文共 731 字,大约阅读时间需要 2 分钟。
为了解决这个问题,我们需要计算每天在河边标记的最小总和。每天的水位变化会影响标记的位置和数量,我们需要找到最优的标记位置,使得在水位下方的标记数最少。
方法思路
t_i
。如果当前天数的标记数比前一天多,则更新总标记数;否则,总标记数保持不变。解决代码
n = int(input())m = list(map(int, input().split()))t = [0] * nt[0] = m[0] + 1for i in range(1, n): t[i] = max(t[i-1], m[i] + 1)for i in range(n-2, -1, -1): if t[i+1] - t[i] > 1: t[i] = t[i+1] - 1ans = sum(t[i] - m[i] - 1 for i in range(n))print(ans)
代码解释
n
和每天的标记数数组 m
。t
:第一个天数的标记数为 m[0] + 1
,因为第一天总是有一个标记。通过这种方法,我们能够高效地找到最优的标记位置,确保每天在水位下方的标记数最少。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月18日 23时18分12秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
SQL函数返回表的写法
2019-03-06
delete对象时会自动调用类的析构函数
2019-03-06
C++ 子类对象直接赋值给父类对象可行,反过来不行
2019-03-06
linux下同一个动态库名为何辣么多的.so文件
2019-03-06
SQL联表的方式(逗号, Left Join, Right Join)
2019-03-06
牛客网输入输出举例
2019-03-06
字符串初始化时的注意点
2019-03-06
软考相关试题
2019-03-06
顺序表的操作
2019-03-06
常量表达式
2019-03-06
POD类型
2019-03-06
const与常量,傻傻分不清楚~
2019-03-06
Head First设计模式——迭代器模式
2019-03-06
MongoDB版本及存储引擎区别
2019-03-06
shell echo单行和多行文字定向写入到文件中
2019-03-06
AtCoder Beginner Contest 100 题解
2019-03-06
【数据结构】可持久化线段树初步
2019-03-06
后缀树
2019-03-06
Java高性能编程之CAS与ABA及解决方法
2019-03-06
从BIO到Netty的演变
2019-03-06