• 南阳36


     1 /*
     2 状态转移方程如下 ai,bj分别代表a字符串和b字符串的i,j处的字符
     3         
     4             -> 0                            (i = j =0)
     5 v[i,j] =    -> v[i-1][j-1]                  (ai == bj)
     6             -> Max(v[i-1][j],v[i][j-1])     (ai != bj)
     7 */
     8 #include<cstdio>
     9 #include<cstring>
    10 #define Max(a,b) ((a)>(b)?(a):(b))
    11 using namespace std;
    12 
    13 char a[1005],b[1005];
    14 int v[1005][1005];
    15 int n,i,j;
    16 
    17 int main()
    18 {
    19     int n;
    20     scanf("%d",&n);
    21     while(n--)
    22     {
    23         scanf("%s%s",a,b);
    24         for(i=0; a[i]!=''; ++i)
    25         {
    26             for(j=0; b[j]!=''; ++j)
    27             {
    28                 if(a[i] == b[j])
    29                     v[i+1][j+1] = v[i][j] + 1;
    30                 else
    31                     v[i+1][j+1] = Max(v[i][j+1],v[i+1][j]);
    32             }
    33         }
    34         printf("%d
    ",v[i][j]);
    35     }
    36     return 0;
    37 }
     1 //空间优化,只有一维时,v[i-1][j-1]会被覆盖,所以只需要开一个变量存储v[i-1][j-1]即可
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 
     6 char a[1005],b[1005];
     7 int v[1005];
     8 int n,i,j,t,temp;
     9 
    10 int main()
    11 {
    12     scanf("%d",&n);
    13     while(n--)
    14     {
    15         scanf("%s%s",a,b);
    16         memset(v,0,sizeof v);
    17         for(i=0; a[i]!=''; ++i)
    18         {
    19             t = 0;
    20             for(j=0; b[j]!=''; ++j)
    21             {
    22                 temp = v[j];
    23                 if(a[i] == b[j])
    24                     v[j] = t + 1;
    25                 else if(v[j] < v[j-1])
    26                     v[j] = v[j-1];
    27                 t = temp;
    28             }
    29         }
    30         printf("%d
    ",v[j-1]);
    31     }
    32     return 0;
    33 }
  • 相关阅读:
    FatMouse's Speed --hdu
    poj 1182--食物链 (并查集)
    HDU
    CodeForces
    LightOJ
    HDU2717:Catch That Cow(BFS 队列)
    HDU
    51Nod
    bash: ifconfig: command not found 解决办法--------仅供参考
    关于“ORA-01653: 表 SYS.AUD$ 无法通过 128 (在表空间 SYSTEM 中)
  • 原文地址:https://www.cnblogs.com/qq188380780/p/6678471.html
Copyright © 2020-2023  润新知