0
点赞
收藏
分享

微信扫一扫

Catching Cheaters

​​Catching Cheaters​​

其实就是把最长公共子序列的 dp 维护的值变为\(4LCS(C,D)-|C|-|D|\)的值就好了。

#include<bits/stdc++.h>

using namespace std;
const int maxn=5005;
int dp[maxn][maxn];

int main(){
int n,m;cin>>n>>m;
string s,t;cin>>s>>t;
int ans=0;
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
if(s[i-1]==t[j-1]) dp[i][j]=max(dp[i][j],dp[i-1][j-1]+2);
else dp[i][j]=max(dp[i-1][j],dp[i][j-1])-1;
dp[i][j]=max(0,dp[i][j]);
ans=max(ans,dp[i][j]);
}
}
cout<<ans<<endl;
return 0;
}

CAD加油!欢迎跟我一起讨论学习算法,


举报

相关推荐

0 条评论