zoukankan      html  css  js  c++  java
  • NYOJ 36最长公共子序列

     1 /*******************************************************
     2     状态转移方程:
     3     s1[i] == s2[j] 时,same[i,j] = 1;
     4     ans = max(a[i][j]+same[i,j], a[i][j-1], a[i-1][j])
     5 
     6 *****************************************************/
     7 #include<iostream>
     8 #include<cstring>
     9 #include<string>
    10 using namespace std;
    11 #define N 1005
    12 int a[N][N];
    13 string s1,s2;
    14 
    15 void dp()
    16 {
    17     int i,j;
    18     memset(a,0,sizeof(a));
    19     for(i = 0; i < s1.length(); i++)
    20         for(j = 0; j < s2.length(); j++)
    21         {
    22             if(s1[i] == s2[j]) a[i+1][j+1] = a[i][j] + 1;
    23             else a[i+1][j+1] = a[i+1][j]>a[i][j+1]?a[i+1][j]:a[i][j+1];
    24         }
    25 }
    26 
    27 int main()
    28 {
    29 //    freopen("in.txt","r",stdin);
    30     int t;
    31     cin>>t;
    32     while(t--)
    33     {
    34         cin>>s1>>s2;
    35         dp();
    36         cout<<a[s1.length()][s2.length()]<<endl;
    37     }
    38     return 0;
    39 }
  • 相关阅读:
    js-异步机制与同步机制
    js-正则表达式
    js-注释代码习惯
    布局-块级元素水平垂直居中
    js-本地调试跨域
    vue2-项目资源收集
    git 忽略文件夹
    运行npm run eject报错解决方法
    柯里化函数
    常用正则表达式总结
  • 原文地址:https://www.cnblogs.com/yaling/p/3011093.html
Copyright © 2011-2022 走看看