首页 > TAG信息列表 > Cheaters
Codeforces1446 B. Catching Cheaters(dp,最长公共子序列)
题意: 解法: 令d[i][j]表示S串以i结尾的子串,T串以j结尾的子串,的最大值. 1.如果s[i]==t[j],那么可以匹配,d[i][j]=d[i-1][j-1]+2. 2.如果s[i]!=t[j],那么不能匹配,此时对于d[i-1][j]和d[i][j-1], 只会增加一个子串的长度,LCS不会变化,因此d[i][j]=max(d[i-1][j],d[i][j-1])CodeForces 1447D :Catching Cheaters 字符串DP
传送门 题目描述 给我们两个字符串,让我们从中选出两个字串,算出它们的最大公共子序列长度。然后将它乘4在减去两个字串的长度。问你这个数最大是多少。 分析 我们可以把这个式子转换为2 * LIS - a的剩余长度 - b的剩余长度,然后就可以设计dp方程了 如果当前这一位匹配了,那么答[CF1446B] Catching Cheaters - dp
Description 给定两个串 \(s,t\),长度 \(\le 5000\),求对所有 \(s\) 的子串 \(p\) 和 \(t\) 的子串 \(q\),\(4LCS(p,q)-|p|-|q|\) 的最大值。LCS 指最长公共子序列。 Solution 设 \(f[i][j]\) 表示 \(s\) 考虑到第 \(i\) 个字符,\(t\) 考虑到第 \(j\) 个字符,两个前缀中所存在的 LCS 的Codeforces Round #683 (Div. 2, by Meet IT) D. Catching Cheaters (DP)
题意:给你两个字符串,每次取它们的子串C和D,然后求LCS,得到的贡献为\(4*LCS(C,D)-|C|-|D|\),求最大贡献. 题解:首先应该了解\(O(n^2)\)的LCS的dp写法,然后在此基础上稍加改动,对于子串\(C\)和\(D\),如果\(c[i]=d[j]\),那么他们的LCS应该\(+1\),长度也分别\(+1\),所以\(dp[i][