zoukankan      html  css  js  c++  java
  • UVa10405 Longest Common Subsequence

    最大公共子序列,需要注意的是x[]最开始保存的是相应字符串的长度,在比较时应比较s1[x[1]-1]与s2[x[2]-1];

    水题,做一道过一道。。。

     1 /* 10405 - Longest Common Subsequence */
    2 # include <stdio.h>
    3 # include <string.h>
    4
    5 # define MAXN 1001
    6
    7 int lena;
    8 int x[2];
    9 char s1[MAXN];
    10 char s2[MAXN];
    11 int ans[MAXN*MAXN];
    12
    13 int get(int *x);
    14
    15 int main()
    16 {
    17 while (gets(s1) != NULL)
    18 {
    19 gets(s2);
    20 x[0] = lena = strlen(s1);
    21 x[1] = strlen(s2);
    22 memset(ans, 0xff, sizeof(ans));
    23 printf("%d\n", get(x));
    24 }
    25
    26 return 0;
    27 }
    28
    29 int get(int *x)
    30 {
    31 int ret, index, rem;
    32
    33 if (!x[0] || !x[1]) return 0;
    34 index = x[0]-1 + lena*(x[1]-1);
    35 if (ans[index] >= 0) return ans[index];
    36 if (s1[x[0]-1] == s2[x[1]-1])
    37 {
    38 --x[0]; --x[1];
    39 ret = get(x) + 1;
    40 ++x[0]; ++x[1];
    41 }
    42 else
    43 {
    44 ret = 0;
    45 --x[0]; if ((rem = get(x)) > ret) ret = rem; ++x[0];
    46 --x[1]; if ((rem = get(x)) > ret) ret = rem; ++x[1];
    47 }
    48 ans[index] = ret;
    49 return ret;
    50 }



  • 相关阅读:
    C++内联函数
    C++类中创建线程
    windows下搭建Redis集群
    tcpdump截帧工具使用
    使用gdb调试应用程序
    工作之用
    primecoin服务常用命令和参数说明
    Windows mysql默认字符集修改
    primecoin在ubuntu16.04上部署服务:
    ubuntu磁盘分配和挂载
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2427017.html
Copyright © 2011-2022 走看看