当前位置: 首页 > news >正文

E.接龙数列【蓝桥杯】/动态规划

接龙数列

题目描述
对于一个长度为 K 的整数数列:A1, A2, . . . , AK,我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1 的末位数字 (2 ≤ i ≤ K)。

例如 12, 23, 35, 56, 61, 11 是接龙数列;12, 23, 34, 56 不是接龙数列,因为 56的首位数字不等于 34 的末位数字。所有长度为 1 的整数数列都是接龙数列。

现在给定一个长度为 N 的数列 A1, A2, . . . , AN,请你计算最少从中删除多少个数,可以使剩下的序列是接龙序列?

输入格式
第一行包含一个整数 N。
第二行包含 N 个整数 A1, A2, . . . , AN。

输出格式
一个整数代表答案。

样例输入
5
11 121 22 12 2023
样例输出
1

提示
删除 22,剩余 11, 121, 12, 2023 是接龙数列。

对于 20% 的数据,1 ≤ N ≤ 20。
对于 50% 的数据,1 ≤ N ≤ 10000。
对于 100% 的数据,1 ≤ N ≤ 105,1 ≤ Ai ≤ 109。所有 Ai 保证不包含前导 0。

动态规划

dp[i]表示以i为数字最后一位的最长接龙数列长度
x是该数最高位,y表示最低位
转移方程dp[y]=max(dp[x]+1,dp[y]);,dp[x]+1表示选择当前数,dp[y]表示不选择当前数

#include<iostream>
#include<cstring>
using namespace std;
int main()
{int dp[15]={0};int n,m=1;cin>>n;for(int i=0;i<n;i++){string s;cin>>s;int x=s[0]-'0',y=s[s.size()-1]-'0';dp[y]=max(dp[x]+1,dp[y]);m=max(m,dp[y]);}cout<<n-m<<endl;return 0;
}
http://www.lryc.cn/news/317369.html

相关文章:

  • cv2.cvtColor()将二维转化为彩色图像
  • 为什么 VSCode 不用 Qt 而要用 Electron?
  • 环信ChatroomUIKit功能详解——超详细介绍
  • 怎么读取springboot中的properties.yml配置文件里的配置值(亲测有效)
  • 18、设计模式之解释器模式(Interpreter)
  • cpp qt 一个奇怪的bug
  • 第6章:MATLAB文本数据处理进阶篇的目录 (MATLAB入门课程)
  • 软件杯 深度学习 opencv python 公式识别(图像识别 机器视觉)
  • vscode通过多个跳板机连接目标机(两种方案亲测成功)
  • C++基础复习003
  • Docker Commit提交
  • 百度现在应该怎么去做搜索SEO优化?(川圣SEO)蜘蛛池
  • 登录凭证------
  • matplotlib系统学习记录
  • 【DL】ML系统学习笔记 1
  • ffmpeg视频处理常用命令
  • 前端npm和yarn更换国内淘宝镜像
  • 华为配置OSPF的Stub区域示例
  • 学会Web UI框架--Bootstrap,快速搭建出漂亮的前端界面
  • C语言学习大纲
  • Unity URP 如何写基础的曲面细分着色器
  • android pdf框架-8,图片缓存
  • UE5.2 SmartObject使用实践
  • 奇舞周刊第521期:实现vue3响应式系统核心-MVP 模型
  • Mybatis-plus手写SQL如何使用条件构造器和分页
  • Vue的table组件合并行方法
  • 5. C语言字符串处理常用方法
  • ts--(入门到离职系列)
  • java后端常见问题
  • windows系统玩游戏找不到d3dx9_43.dll缺失,无法启动此程序的解决方法