摘要: 传送门 解题思路 个人认为这根本不是模板,而这题更倾向于LCS在某种特殊情况下的一种优化时间的方法。 真正的模板:LCS模板 这道题就是在两个字符串都是1~n的全排列时可以把时间复杂度从n2优化到nlogn。 把s2中的每一个元素在s1中的位置用一个数组记录下来,然后对这个数组做一遍最长上升子序列( 阅读全文
posted @ 2020-01-02 23:46 尹昱钦 阅读(223) 评论(0) 推荐(1) 编辑
摘要: 传送门 解题思路 很显然的最长公共子序列(LCS)的板子。 定义:用dp[i][j]表示S1前i位和S2前j位的最长公共子序列。 状态转移: 当s1[i]==s2[j]时,dp[i][j]=dp[i-1][j-1]+1; 当s1[i]!=s2[j]时,dp[i][j]=max(dp[i-1][j], 阅读全文
posted @ 2020-01-02 23:38 尹昱钦 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 很显然,把这个字符串倒过来,再与原来的做一个lcs即可。 最后用长度-lcs长度就是答案。 AC代码 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 int n,dp[1005][1005]; 5 阅读全文
posted @ 2020-01-02 00:06 尹昱钦 阅读(168) 评论(0) 推荐(0) 编辑