草庐IT

2023年第十四届蓝桥杯javaB组 蜗牛解题思路(动态规划 O(n))

 E、蜗牛(时间限制:1.0s内存限制:512.0MB)【问题描述】这天,一只蜗牛来到了二维坐标系的原点。在x轴上长有n根竹竿。它们平行于y轴,底部纵坐标为0,横坐标分别为x1,x2,...,xn。竹竿的高度均为无限高,宽度可忽略。蜗牛想要从原点走到第n个竹竿的底部也就是坐标(xn,0)。它只能在x轴上或者竹竿上爬行,在x轴上爬行速度为1单位每秒;由于受到引力影响,蜗牛在竹竿上向上和向下爬行的速度分别为0.7单位每秒和1.3单位每秒。为了快速到达目的地,它施展了魔法,在第i和i+1根竹竿之间建立了传送门(0【输入格式】输入共1+n行,第一行为一个正整数n;第二行为n个正整数x1,x2,...,

Loj 507 接竹竿 题解

Loj链接:接竹竿${\scr\color{SkyBlue}{\text{Solution}}}$题目大意:给定一个数组,每次加入一种颜色的数,可以取走与它颜色相同的两个数之间的所有数,问最后取走的所有数中最大和是多少分析:第一眼看到的是二分答案,但不知道二分的check()函数怎么写。没办法,考虑DP(其实是因为我贪心写挂了)DP如果可以,那么要至少要满足一下几个条件:DP前面的选择情况不影响后面的选择情况(前不影响后)DP可以转移时间、空间复杂度等可以以后慢慢优化啦! 尝试一下?尝试列出转移方程:$$dp[i]=max\begin{cases}dp[i-1]&\text{$c_i$}!={

Loj 507 接竹竿 题解

Loj链接:接竹竿${\scr\color{SkyBlue}{\text{Solution}}}$题目大意:给定一个数组,每次加入一种颜色的数,可以取走与它颜色相同的两个数之间的所有数,问最后取走的所有数中最大和是多少分析:第一眼看到的是二分答案,但不知道二分的check()函数怎么写。没办法,考虑DP(其实是因为我贪心写挂了)DP如果可以,那么要至少要满足一下几个条件:DP前面的选择情况不影响后面的选择情况(前不影响后)DP可以转移时间、空间复杂度等可以以后慢慢优化啦! 尝试一下?尝试列出转移方程:$$dp[i]=max\begin{cases}dp[i-1]&\text{$c_i$}!={