- 博客(16)
- 收藏
- 关注
原创 P12379 [蓝桥杯 2023 省 Python B] 松散子序列
给定一个仅含小写字母的字符串 s,假设 s 的一个子序列 t 的第 i 个字符对应了原字符串中的第 pi 个字符。我们定义 s 的一个松散子序列为:对于 i>1 总是有 pi−pi−1≥2。设一个子序列的价值为其包含的每个字符的价值之和(a∼z 分别为 1∼26)。这道题就是一个子序列,各字符在原来的序列里是至少相隔一个的,就是继承前两个状态。求 s 的松散子序列中的最大价值。输入一行包含一个字符串 s。字符串求值也可以这样写一下的。要用O(n)的时间复杂度写。主要就是先弄出本身的值再算。
2025-09-12 13:26:00
192
原创 B4163 [BCSP-X 2024 12 月初中组] 序列选择
给定两个长度为 n 的序列 a,b,找出一个长为 n 的序列 c,满足对于 i=1,2,⋯,n,有 ci=ai 或 ci=bi,使得 ∑i=2n∣ci−ci−1∣ 最小,你只需要输出这个最小值。输出一行一个整数,表示 ∑i=2n∣ci−ci−1∣ 的最小值。就是继承之前以a[i - 1]和b[i - 1]结尾的最佳情况。第一种20分的写法就是DFS纯暴力。总体就是按照题目要求,求出最小值。
2025-09-12 13:15:52
223
原创 P1162台阶问题
有 N 级台阶,你一开始在底部(第0个台阶),每次可以向上迈 1∼K 级台阶,问到达第 N 级台阶有多少种不同方式。一个正整数 ans(mod100003),为到达第 N 级台阶的不同方式数。a[x] = 前K个台阶的值之和。是一个动态规划的题(DP)所以只要动动脑子就能写出来。毕竟是从之前的台阶走来的。两个正整数 N,K。
2025-09-12 13:05:16
183
原创 快速排序【模板】
该代码实现了一个随机化的快速排序算法(Quicksort),用于对输入的整数数组进行排序。核心思路是通过随机选择基准值(pivot)将数组划分为三部分:小于基准、等于基准和大于基准的元素,再递归处理前两部分和后两部分。
2025-07-08 15:54:55
290
原创 归并排序【模板】
(Divide and Conquer)的高效排序算法,由约翰·冯·诺依曼(John von Neumann)于1945年发明。它通过将待排序数组分成若干个子数组,分别排序后再合并,最终得到一个有序数组。快排跟名字一样,速度很快,但是有缺点,不稳定,又是时间复杂度甚至到O(n ^ 2)。有一种跟快排速度一样,也很快的算法,是归并排序。知道了快排是怎么进行的,以下是按原理写出的代码。归并排序(Merge Sort)是一种基于。继续分割,直到每个子数组只包含一个元素。合并相邻的子数组,得到。
2025-07-07 19:40:14
277
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅