题解 3152: 蓝桥杯2023年第十四届省赛真题-接龙数列

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

dp + 滚动数组思想

摘要:解题思路:dp[i][j]代表选到第i个时,要使此时结尾位为j,需要删除的个数。如果j≠num[i]的末尾,那么只能删除第i个数,此时dp[i][j] = dp[i - 1][j] + 1;否则,就有……

极简 线性DP

摘要:## 试题E: 接龙数列 ### 题意描述 对于一个长度为K 的整数数列:$A_1,A_2..A_K$,我们称之为接龙数列当且仅当$A_i$ 的首位数字恰好等于$A_{i−1}$ 的末位数……

python--study||O.o

摘要:参考代码:n = int(input()) arr = list(map(str, input().split())) #dp[i]是以i为数字结尾的最长接龙子序列的长度 dp = [0] * ……

定义一个长度为10的数组存放尾数0到9的最大长度来解决问题

解题思路:由于每个数只要头和尾,而其中尾只能是0到9,即使当尾为0时不能继续接,也要用10个参数来储存尾巴为0到9的最大长度即可。p[10]的1到9对应当前尾巴为1到9的长度最长的值,所以每拿到一个新的数,只要检测这个数接上去是否可以使某一个数组最大值增加。

一维数组数组dp求解最长接龙子序列问题(参考别人代码“黑名单”写下的总结)

一开始没思路我就想直接暴力dfs的写出来的但是暴力过了3个点(主要是练一下dfs)没绷住看着这个圈一直转我就知道寄了关键这个dfs时间复杂度太大了用不了剪枝和打表用dfs做感觉真是**赤石**后来看了别人的感觉别人写的真的**泰裤辣**简洁不说还内存小也让你们赤一下史看看我写的dfs#includeu

如何根据题意找到dp的转移方程的分析步骤

解题思路:因为他的位置不会改变,所以我们肯定需要遍历一次,我们要求的是最少删除次数,我们很容易就能想到这是一个dp题,那我们要如何构造这个状态转移方程呢,我们需要注意的是,它只要前一个数列的末尾和当前数列的第一位相同就可以进行连接起来,所以我们可以用两个字符串来进行快速访问第一个和最后一个字符,