标签:注意 存在 using pac bsp sample length problem ict
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 53443 Accepted Submission(s): 24607
abcfbc abfcabprogramming contestabcd mnp
420
一个给定序列的子序列是一个给定序列,其中有些元素(可能没有)被省略。给定一个序列 X = <x1, x2, ..., xm> 另一个序列 Z = <z1, z2, ..., zk> 是X的子序列,如果存在严格递增序列, <i1, i2, ..., ik> 对所有 j = 1,2,…,k, xij = zj。例如,Z = <a, b, f, c> 是 X = <a, b, c, f, b, c> 的子序列,索引序列< 1,2,4,6 >。给定两个序列X和Y,问题是求X和Y的最大长度公共子序列的长度。
序列由任意数量的空格分隔。输入数据是正确的。对于每组数据,程序在标准输出上打印从单独行开始的最大长度公共子序列的长度。
注意:最长公共子序列 ,可以不连续。
#include<bits/stdc++.h> #define MAX 5005 using namespace std; int f[MAX][MAX]; string s,t; int main(){ while(cin>>s>>t){ for(int i=1;i<=s.length();i++) for(int j=1;j<=t.length();j++){ f[i][j]=max(f[i-1][j],f[i][j-1]); if(s[i-1]==t[j-1]) f[i][j]=max(f[i][j],f[i-1][j-1]+1); } cout<<f[s.length()][t.length()]<<endl; } return 0; }
标签:注意 存在 using pac bsp sample length problem ict
原文地址:https://www.cnblogs.com/fangxiaoqi/p/10915451.html