- 博客(7)
- 收藏
- 关注
原创 #算法 蓝桥杯 更小的数
首先我们判断的条件很简单,就是这个字符串的两头之间数字比大小,如果两个大小相等的话,我们就可以再比较去掉两头的,里面的字符串两头的大小,这时候我们dp的规则就已经出来了,首先dp[i][j]代表的是这个字符串的第i位与第j位能否互换,如果互换,就是1.所以dp[i][j]=dp[i+1][[j-1];(这是在确保i与j之间差距大于1的时候才能够实现的递归)。具体详细的看代码即可。
2024-03-01 21:41:04
539
1
原创 #算法 蓝桥杯2.24算法赛
因为除了第一位数字,我们应当用两次变换就能够将这个数字变成正数(现变换到前面的数字,在变换当前的数字)。但是这样的话,理论来讲,有n个数字,我们应当需要2n-1次变换,这和题目所说的n次变换不同啊。关键就是在于,如果有一段连续的负数的话,我们只需要变换这组负数的前面一个数字和最后一个数字即可,也只需要两次。也就是说,最复杂的情况,应该是正负数交叉出现,在这种情况下的最复杂的情况是需要n次就可以(具体的情况需要根据n的奇偶来定,劳烦大家自己分析即可)。
2024-02-25 00:16:16
300
原创 #算法 动态规划 查找最长的上升子序列问题
很容易推算出来dp[i]=max(dp[i],dp[j]+1),这里需要满足的前置要求为p[j]<p[i],也就是第j个数字要小于新加入的数字才能够执行(原因就是在于上面说的,以第i个为结尾)。这里的输出方法,首先找到最大的dp[i],然后通过倒叙的方法,依次找他的前一个子序列,判定的方法是找到的数要小于上一个数,而且对应的dp的值刚好是上一个数对应的dp值-1,然后进行输出就好。思路在于dp[i]表示的是以第i个为结尾的子序列的长度,注意是以第i个为结尾,而不是在i之前任意子序列的最长长度。
2024-02-22 20:20:10
319
1
原创 #算法 完全背包问题
完全背包问题可以先计算出每个物品的性价比,进行降序排列,性价比最高的最先最多选择,其次就是性价比第二高的,依次向下类推就好(贪心)完全背包问题和背包问题感觉不太一样,一个是运贪心,另一个是运用动态规划就好。因为是结构体,所以sort的用法不同于平常数组的用法。
2024-02-21 20:46:13
313
原创 记录学习算法上的小问题和小技巧
今天的问题在于高精计算大数的加和乘积的时候,string转换成int类型的时候没有进行正确的转换导致总是算不对。转换的时候注意后面要加上-‘0’
2024-02-02 21:15:44
485
原创 记录学习算法路上的一些小问题和注意事项
今天在做洛谷奶牛问题(P2676 [USACO07DEC] Bookshelf B)时候一直没法通过,原来是忘记了sort排序是按照升序排序的方法进行的,想要将许排序需要增加greater<int>()参数。
2023-12-17 21:57:44
457
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人