NYOJ 36(增量法解决LCS)

简介: 1 2 #include 3 #include 4 #define N 1001 5 char a[N],b[N]; 6 int d[N][N]; 7 int max(int m,int n) 8 { 9 return m>n?m:n; 10 } ...
 1  
 2 #include<stdio.h>
 3 #include<string.h>
 4 #define N 1001
 5 char a[N],b[N];
 6 int d[N][N];
 7 int max(int m,int n)
 8 {
 9     return m>n?m:n;
10 }
11 int LCSL(int len1,int len2)
12 {
13     int i,j;
14     for(i=1;i<=len1;i++)
15         d[i][0]=0;
16     for(j=1;j<=len2;j++)
17         d[0][j]=0;
18     for(i=1;i<=len1;i++)
19         for(j=1;j<=len2;j++)
20             if(a[i-1]==b[j-1])
21                 d[i][j]=d[i-1][j-1]+1;
22             else
23                 d[i][j]=max(d[i][j-1],d[i-1][j]);
24     return d[len1][len2];
25 }
26 int main()
27 {
28     int T,len1,len2;
29     scanf("%d%*c",&T);
30     while(T--)
31     {
32         memset(a,0,sizeof(a));
33         memset(b,0,sizeof(b));
34         memset(d,0,sizeof(d));
35         scanf("%s%*c",a);
36         scanf("%s%*c",b);
37         len1=strlen(a);
38         len2=strlen(b);
39         printf("%d\n",LCSL(len1,len2));
40     }
41     return 0;
42 }
目录
相关文章
|
7月前
leetcode-2016:增量元素之间的最大差值
leetcode-2016:增量元素之间的最大差值
57 0
|
算法 C++
剑指offer(C++)-JZ41:数据流中的中位数(算法-排序)
剑指offer(C++)-JZ41:数据流中的中位数(算法-排序)
剑指offer(C++)-JZ41:数据流中的中位数(算法-排序)
|
7月前
等差素数列
等差素数列
37 0
|
5月前
|
SQL 分布式计算 MaxCompute
SQL 能力问题之生成一个简单的递增数列,例如从0递增到3的整数数列,如何解决
SQL 能力问题之生成一个简单的递增数列,例如从0递增到3的整数数列,如何解决
|
6月前
|
存储 算法 Python
技术心得记录:大整数算法【10】Comba乘法(实现)
技术心得记录:大整数算法【10】Comba乘法(实现)
35 0
|
6月前
|
算法 Shell C语言
数据结构与算法——希尔排序(引例、希尔增量序列、原始希尔排序、代码、时间复杂度、Hibbard增量序列、Sedgewick增量序列)
数据结构与算法——希尔排序(引例、希尔增量序列、原始希尔排序、代码、时间复杂度、Hibbard增量序列、Sedgewick增量序列)
71 0
力扣2457 美丽整数最小增量
力扣2457 美丽整数最小增量
|
7月前
|
算法 测试技术 C#
【滑动窗口】【二分查找】C++算法:和至少为 K 的最短子数组
【滑动窗口】【二分查找】C++算法:和至少为 K 的最短子数组
|
算法 测试技术 C#
C++单调向量算法:得到山形数组的最少删除次数
C++单调向量算法:得到山形数组的最少删除次数
|
人工智能 算法
Hungry Sequence (找递增数列)
Hungry Sequence (找递增数列)
60 0