标签:content 枚举 strong int 不同的 ace ++ 子集 ack
for x = 0 to n do for y = 0 to m do if (x == 0 || y == 0) then LCS(x, y) = 0 else if (Ax == By) then LCS(x, y) = LCS(x - 1,y - 1) + 1 else LCS(x, y) = ) max(LCS(x – 1, y) , LCS(x, y – 1)) endif endfor endfor
#include<iostream> #include<cstring> using namespace std; int f[1010][1010]; string a,b,z; int main() { while(cin>>a>>b) { memset(f,0,sizeof(f)); int l1=a.size(); int l2=b.size(); a=‘ ‘+a; b=‘ ‘+b; for(int i=1;i<=l1;i++) for(int j=1;j<=l2;j++) if(a[i]==b[j]) f[i][j]=f[i-1][j-1]+1; else f[i][j]=max(f[i-1][j],f[i][j-1]); int i=l1,j=l2; while(i&&j) { if(a[i]==b[j]) { z=a[i]+z; i--;j--; } else { if(f[i-1][j]>=f[i][j-1]) i--; else j--; } } cout<<z; } }
如果对你有所帮助,别忘了加好评哦;么么哒!!下次见!88
标签:content 枚举 strong int 不同的 ace ++ 子集 ack
原文地址:http://www.cnblogs.com/cangT-Tlan/p/6219003.html