博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Problem B
阅读量:6447 次
发布时间:2019-06-23

本文共 1746 字,大约阅读时间需要 5 分钟。

Problem Description

A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ..., zk> is a subsequence of X if there exists a strictly increasing sequence <i1, i2, ..., ik> of indices of X such that for all j = 1,2,...,k, xij = zj. For example, Z = <a, b, f, c> is a subsequence of X = <a, b, c, f, b, c> with index sequence <1, 2, 4, 6>. Given two sequences X and Y the problem is to find the length of the maximum-length common subsequence of X and Y.

The program input is from a text file. Each data set in the file contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct. For each set of data the program prints on the standard output the length of the maximum-length common subsequence from the beginning of a separate line.

 

Sample Input

abcfbc abfcab

programming contest

abcd mnp

 

Sample Output

4

2

0

题意:给你两个字符数列,求相似度(最长公共子序列)

解题思路:动态规划,看了一下午课件没找到最长公共子序列的例题,在一个博客上看到了动态规划的讲解,刚开始还不大明白状态转移方程是怎么回事,,照着写了一遍,看看图对着代码走了一遍就明白了,在二维数组中查找相同的元素,DP[i][j]记录当前状态的最长公共子序列的长度,另外如果用一个flag[i][j]记录状态转移的过程,就可以输出最长公共子序列;

感悟:动态规划太抽象了,但是想出来了,就很好谢了;

代码:

#include

#include

#include

#define maxn 1005

using namespace std;

 

char s1[maxn],s2[maxn];

int dp[maxn][maxn];//记录当前状态的最长子序列长度

 

int main()

{

    //freopen("in.txt","r",stdin);

    while(~scanf("%s",&s1))

    {

        scanf("%s",&s2);

        for(int i=1;i<=strlen(s1);i++)

        {

            for(int j=1;j<=strlen(s2);j++)

            {

                if(s1[i-1]==s2[j-1])

                    dp[i][j]=dp[i-1][j-1]+1;

                else if(dp[i][j-1]>dp[i-1][j])

                    dp[i][j]=dp[i][j-1];

                else

                    dp[i][j]=dp[i-1][j];

            }

        }

        printf("%d\n",dp[strlen(s1)][strlen(s2)]);

    }

}

 

转载于:https://www.cnblogs.com/wuwangchuxin0924/p/5781596.html

你可能感兴趣的文章
VSTO学习笔记(五)批量编辑Excel 2010 x64
查看>>
即时编译和打包您的 Groovy 脚本(转)
查看>>
未能加载文件或程序集 Microsoft.ReportViewer.Common, Version=11.0.0.0
查看>>
嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结
查看>>
【直击2017杭州·云栖大会】TECH INSIGHT企业级技术赋能专场
查看>>
服务器托管怎么选择好的服务商
查看>>
物联网:带来连接、平台两大机遇
查看>>
在微博微信看不到真诚?这些社交应用让你不用再装
查看>>
82%的IT专业人员认为Windows 10会让他们的公司更安全
查看>>
与美女CEO罗元裳共进午餐!朋友圈被7分钟理财刷屏!
查看>>
卡巴斯基网络安全解决方案实现自动化
查看>>
皮尤:62%美国成人从社交网站获取新闻
查看>>
Windows 10 Mobile内部编译版本已移除Silverlight支持
查看>>
“对外”SaaS蓝海:移动CRM最吸金
查看>>
反倾销半年涉案85亿 光伏出口或受影响
查看>>
图尔克推行户RFID设备控制器TBEN-L-DCC,可进行数据控制
查看>>
有了大数据的介入 以后考试可能都没法作弊了
查看>>
数据中心服务器虚拟化技术介绍
查看>>
要想做好软件测试工作,就要学会思考并问为什么
查看>>
qa应掌握的技能
查看>>