hdu1159 Common Subsequence

接入穿山甲SDK时,Unity打Android包报错日志 SDK工程设置为Enable,项目工程设置为Disable。2、将unitypackage导入包名为:com.DefaultCompany.Myproject的另一个工程,打包报错。3、点击工程默认弹出Enable Android Auto-resolution 设置选项,点击Enable。1、新建一个空工程,设置包名为:com.ceshi.hewen,正常打包无报错,导出unitypackage。2、点击Reset to Defaults 重置参数,再点击ok关闭设置窗口。 阅读详情

Common Subsequence


Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 29956    Accepted Submission(s): 13492




Problem Description
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ..., zk> is a subsequence of X if there exists a strictly increasing sequence <i1, i2, ..., ik> of indices of X such that for all j = 1,2,...,k, xij = zj. For example, Z = <a, b, f, c> is a subsequence of X = <a, b, c, f, b, c> with index sequence <1, 2, 4, 6>. Given two sequences X and Y the problem is to find the length of the maximum-length common subsequence of X and Y. 
The program input is from a text file. Each data set in the file contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct. For each set of data the program prints on the standard output the length of the maximum-length common subsequence from the beginning of a separate line. 
 


Sample Input
abcfbc abfcab
programming contest 
abcd mnp
 


Sample Output
4
2
0


dp经典,最长公共子序列

dp的核心是确定状态,找出子问题最优解,推出状态转移方程,然后求解

设d(i,j)为A1,A2,A3,...,Ai和B1,B2,B3,...,B j的最长公共子序列长度,则当A[i] = B[j]的时候,d(i, j) = d(i - 1, j - 1) + 1

否则d(i, j) = max{ d(i - 1, j), d(i, j - 1) }

d(i, j) = d(i - 1, j - 1) + 1是因为假如当前位置A[i] = B[j]也就是当前位置字符一样,就说明匹配,d(i, j)前一个状态是d(i - 1, j - 1)而不是d(i - 1, j)或d(i, j - 1)的原因是

如果是这两个,那么会出现同一个字符重复匹配的情况,显然是不合法的操作,若前一个状态是d(i - 1, j - 1),其加一刚好两个字符串比对的长度自然加一。

对于d(i, j) = max{ d(i - 1, j), d(i, j - 1) }的理解是,若当前位不匹配,如匹配到abf 和 abcfb,是选3而不是2作为当前位最大公共子序列长度,匹配当前位置f 和 b不匹配,则必然这个匹配位置不会对匹配长度贡献一位,

当前的最长匹配长度肯定是ab abcfb的公共长度和abf  abcf公共长度中大的一个,因为当前位不匹配,相当于对结果没影响,即不会在上一个状态加一

附上abcfbc abfcab的dp数组的最终图





#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>

using namespace std;

char a[1005], b[1005];
int dp[1005][1005], lena, lenb;
int sizedp = sizeof(dp);

int main()
{
	while (~scanf("%s", a) && ~scanf("%s", b)) {
		lena = strlen(a);
		lenb = strlen(b);
		memset(dp, 0, sizedp);
		for (int i = 0; i < lena; i++) {  //A的任意长度和B的任意长度的子串挨个匹配一遍
			for (int j = 0; j < lenb; j++) {
				if (a[i] == b[j]) {
					if (i - 1 >= 0 && j - 1 >= 0) {   //防止越界
						dp[i][j] = dp[i - 1][j - 1] + 1;
					}
					else {
						dp[i][j] = 1;
					}
				}
				else {
					int tem = 0;
					if (i - 1 >= 0)	{
						tem = max(tem, dp[i - 1][j]);
					}
					if (j - 1 >= 0) {
						tem = max(tem, dp[i][j - 1]);
					}
					dp[i][j] = tem;
				}
			}
		}
		printf("%d\n", dp[lena - 1][lenb - 1]);
	}
	return 0;
}


【运动规划算法项目实战】如何使用Pure Pursuit算法进行路径跟踪(附ROS C++代码) 在自动驾驶和机器人导航领域,路径跟踪是一项关键技术,它使车辆或机器人能够按照预定的路径规划进行移动。路径跟踪算法的选择对于系统性能和安全性至关重要。本文将介绍一种常用且有效的路径跟踪算法——Pure Pursuit算法。我们将详细讨论Pure Pursuit算法的原理、实现步骤以及如何在自动驾驶和机器人系统中应用该算法进行路径跟踪。Pure Pursuit是一种用于路径跟踪的控制算法。它通过计算角速度控制机器人从当前位置移到机器人前方的某个预瞄点。假定线速度是恒定的,当然可以随意更改机器人的线速度。 阅读详情

相关推荐

【项目实战-MATLAB】:基于机器学习的虹膜识别系统设计

虹膜识别主要包括虹膜定位、虹膜裁剪、极坐标变换、归一化、HOG特征提取、虹膜识别六个主要步骤。本系统采用MATLAB作为开发工具实现 主要算法:霍夫变换预处理 HOG特征提取 SVM进行识别

qq_45047246的博客 6537

C++ OJ HDU 1159 Common Subsequence

C++ OJ  HDU 1159 Common Subsequence CLAY 撰写 XCOJ 动态规划 暂无评论 Now I think you have got an AC in Ignatius.L’s “Max Sum” problem. To be a brave ACMer, we always challenge ourselves to more diffic

CLAYFire的博客 701

避坑指南:Allegro 17.2更新封装时遇到的5个典型问题及解决方案(含Symbol报错处理)

本文深度解析Allegro 17.2封装更新过程中的核心机制与常见陷阱。针对“Update Symbols”功能失效、焊盘不匹配、DRC报错、图形层叠错误等5大典型问题,提供从原理分析到实战解决方案的完整指南,帮助用户实现从“更新失败”到“丝滑替换”的平稳过渡。

tgb34567890的博客 1035

HDU 1159 Common Subsequence

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 题目大意:给出两个字符串,求两个字符串的最长公共字串。 思路:慢慢重心开始有贪心转向动态规划了,这题就是简单的动态规划题。以题目的第一组测试数据为例。abcfbc abfcab。 辅助空间变化示意图 可以看出: F[i][j]=F[i-1][j-1]

A_Eagle的专栏 8958

拆解一个800G光模块:手把手带你认识里面的MT插芯和光纤阵列(FA)

本文详细拆解了800G光模块中的关键组件MT插芯和光纤阵列(FA),揭示了并行光学技术如何实现高速数据传输。通过显微镜下的精密观察,展示了MT插芯的高精度构造和光纤阵列的连接奥秘,同时解析了高精度研磨工艺对光信号传输的重要性。这些微型组件是高速收发模块实现800Gbps带宽的核心技术。

weixin_30839881的博客 1540

模仿学习与强化学习结合(IL+RL)有没有代表性论文?未来发展趋势如何?

IL与RL的结合正成为AI研究热点,尤其在机器人控制、复杂博弈等需要边学边练的场景。经典方法如Dagger(2010)和GAIL(2016)开创了先用模仿学习预热、再用强化学习微调的模式。近期工作如IN-RIL(2024)提出交替训练策略,显著提升样本效率。开源项目RoboSchool和StableBaselines3为相关研究提供支持。未来趋势包括:1)混合式智能体结合人类经验与自主探索;2)突破小样本学习、自然语言交互等方向;3)提升安全性、样本效率和可解释性。

CyberSoma的博客 2248

Hdu 1159 Common Subsequence

Hdu 1159 Common Subsequence 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 解题思路: 用相当暴力的dp去匹配两个串,dp[i][j]表示长度为i’的a串和长度为j的b串所得出的最长子串长度,那么很显然,每次匹配上的结果就等于i和j各减一的出的最大值再加上一,没有匹配上意味着i或者j减少一的两个值中取大的,因为这...

weixin_43823753的博客 156

万达电影 com.wandafilm.app headers check

万达电影 安卓逆向 抓包 逆向 check

weixin_43786514的博客 1436

HDU - 1159 Common Subsequence (简单LCS)

HDU - 1159 Common Subsequence题意:    在两个字符串x,y中,求它们最长的公共子串长度分析:    存在x[i] == y[j]时,则公共子串长度+1,否则,维护当前最大值    状态:dp[i][j]:表示以x[i], y[j]结尾时,最大公共子串的长度    转移方程:            if(x[i] == y[j])                   

Deadpool 331

31、贝叶斯认知建模与隐马尔可夫模型:理论与应用

本文探讨了贝叶斯认知建模与隐马尔可夫模型(HMM)的理论基础及其在认知科学和神经科学中的应用。重点介绍了贝叶斯定理和HMM的基本原理,并结合实际案例,如情绪识别系统和脑机接口(BCI),展示了它们在处理复杂认知任务中的强大能力。文章还讨论了贝叶斯-HMM模型的技术细节、优势与局限性,以及未来的发展前景。

meat5的博客 141

路径跟踪 | 图解纯追踪算法Pure Pursuit(附ROS C++/Python/Matlab仿真)

纯追踪算法(Pure Pursuit)参考了人类驾驶行为,其基本思想是在待跟踪路径上设置预瞄点(goal-ahead),通过简单的几何方法驱动机器人跟踪预瞄点直至抵达目标位置.本文详细推导纯追踪算法的理论原理及其变种——自适应纯追踪算法(APP)和规范化纯追踪算法(RPP),并提供ROS C++/Python/Matlab三种仿真实现加深理解

FRIGIDWINTER的博客 8406

HDU-1159 Common Subsequence

Problem Description A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = another sequence Z = is a subsequence of X if there e

Run 4348

深度学习-176-知识图谱技术之langchain与neo4j的嵌入向量Neo4jVector

使用Neo4jVector将输入的文档向量化,并创建向量索引,然后进行语义检索。

qq_20466211的博客 440

hdu 1159 Common Subsequence

hdu 1159 Common Subsequence //开始DP之旅,先来道简单的 Problem Description A subsequence of a given sequence is the given sequence with so...

dilan3700的博客 211

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

HDU 1159 Common Subsequence

题目链接:acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17402    Accepted Subm

llbcys 777

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Hdu1159 Common Subsequence(简单递归)

Hdu1159Common Subsequence Problem Description A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> anoth...

qq_43691704的博客 201

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Common Subsequence【HDU 1159】

题目链接 HDU 1159 大概题意 给你两个字符串a和b,问这两个字符串的最大公共子序列的长度是多少 解题思路 我们定义一个数组dp[i][j]代表处理到字符串a的第i个字符和字符串b的第j个字符的时候,最长上升子序列的长度是多少。 那么我们很容易得到递归方程式 if(a[i-1]==b[j-1]) g[i][j]=g[i-1][j-1]+1; else g[...

qq_41925919的博客 139
上一篇: poj2533 Longest Ordered Subsequence
下一篇: hdu1087 Super Jumping! Jumping! Jumping!
Daemoonn
博客等级 码龄11年 42粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值