题意:给你两个只有ATCG组成的等长字符串,问他们的LCS(最长公共子序列)是否大于|s|*0.99。
题解:
刚开始想到的是字符串只有ATCG,仅仅四个,会不会有什么性质。然后赛后发现做出这题不用这个性质。=. =||
我们可以发现,要想LCS>99%,我们最多在每个串上可以舍弃1e5*0.01也就是1000个字符。那我们设 d p [ i ] [ j ] dp[i][j] dp[i][j]为第一个串舍弃i个字符,第二个串舍弃j个字符所能得到的最长的相同前缀。那么我们要计算 d p [ i ] [ j ] dp[i][j] dp[i][j]的时候, d p [ i ] [ j ] + i dp[i][j]+i dp[i][j]+i就是第一个串目前所在位置, d p [ i ] [ j ] + j