P9242 [蓝桥杯 2023 省 B] 接龙数列(dp+最长接龙序列+分类)

 

1.        计算0~9为结尾的最长子串长度

2.        对于每个数字,比较其开头可连接子串长度+1

与  原来以其末位为末尾的子串长度

3.        更新以其末位为末尾的子串长度

#include<iostream>
#include<string.h>

using namespace std;

// 相当于记录0~9为末尾的最长子串长度
int dp[10] = { 0 };
int main()
{
	int num; cin >> num;
	for(int i=0;i<num;i++)
	{
		char temp[10] = { 0 };
		scanf("%s", temp);

		// 记录数字首尾数字
		int e = temp[strlen(temp) - 1] - '0';
		int f = temp[0] - '0';

		// 当前数字能连接某一子串的情况,
		// 和 不连接
		// 两种情况找最大值,并更新数值 
		dp[e] = max(dp[f] + 1, dp[e]);
	}
	int max = -1;
	for (int i = 0; i <= 9; i++)
	{
		if (max < dp[i])
			max = dp[i];
	}
	cout << num-max;
	return 0;
}

相关推荐

  1. 2023 B 洛谷P9242 数列

    2023-12-05 16:14:08       13 阅读
  2. 2023年-数列dp

    2023-12-05 16:14:08       22 阅读
  3. []数列(C语言)

    2023-12-05 16:14:08       23 阅读
  4. 每日一题:数列

    2023-12-05 16:14:08       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-05 16:14:08       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-05 16:14:08       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-05 16:14:08       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-05 16:14:08       18 阅读

热门阅读

  1. mySQL踩坑记录

    2023-12-05 16:14:08       43 阅读
  2. SpringDocConfiguration

    2023-12-05 16:14:08       30 阅读
  3. Linux CenTOS命令备忘

    2023-12-05 16:14:08       36 阅读
  4. 【android开发-12】android中ListView的详细用法介绍

    2023-12-05 16:14:08       27 阅读
  5. openssl生成ssl证书

    2023-12-05 16:14:08       40 阅读