hdu 1513 使用滚动数组的最长公共子序列

来源:互联网 发布:淘宝后台填写宝贝 编辑:程序博客网 时间:2024/06/14 09:04
#include<iostream>#include<cstring>using namespace std;#define MAX_N 5002#define MAX(a,b) (a)>(b)?(a):(b)char s[MAX_N],t[MAX_N];int dp[2][MAX_N];int main(){int n;while(cin>>n){cin>>s;strcpy(t,s);strrev(t);memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(s[i-1]==t[j-1])dp[i&1][j]=dp[(i-1)&1][j-1]+1;elsedp[i&1][j]=MAX(dp[(i-1)&1][j],dp[i&1][j-1]);}}cout<<n-dp[n&1][n]<<endl;}return 0;}

原创粉丝点击