hdu 1159 Common Subsequence (dp乞讨LCS)
2015-07-18 16:29
513 查看
Common Subsequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24489 Accepted Submission(s): 10823
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
#include<stdio.h> #include<string> #include<vector> #include<iostream> using namespace std; int main(int argc, char *argv[]) { string a,b; while(cin>>a>>b) { vector<vector<int> > c; int x=a.size(); int y=b.size(); int SIZE=x>y?x:y; SIZE+=1; c.resize(SIZE); for(int i=0;i<SIZE;++i) c[i].resize(SIZE,0); for(int i=0;i<=x;++i) c[i][0]=0; for(int i=0;i<=y;++i) c[0][i]=0; for(int i=1;i<=x;++i) for(int j=1;j<=y;++j) { if(a[i-1]==b[j-1]) { c[i][j]=c[i-1][j-1]+1; } else { c[i][j]=c[i][j-1]>c[i-1][j]?c[i][j-1]:c[i-1][j]; } } cout<<c[x][y]<<endl; } return 0; }
相关文章推荐
- requestWindowFeature的使用
- 使用CamlBuilder生成CAML查询语句
- Number Sequence(HDU1005)
- POJ3061 Subsequence(二进制前缀和法律+仿真足)
- SCOM 2012R2 (1) PREREQUISITES
- CALayer(Transform)旋转后产生锯齿
- iptable中snat和masquerade的区别
- find_local_deformable_model_three_squirrel.hdev代码尝试修改
- 反汇编uimage和查看符号表的方法
- Unique Paths II
- 微软首测Win10即服务 Build 10240接收专属更新包下载安装
- ueditor 定制工具栏图标
- EASYUI- EASYUI左移右移 GRID中值
- java基础知识—String、StringBuffer和StringBuilder
- Android开发UI之去掉title bar
- Jenkins build失败条件
- setuid seteuid setreuid 三个函数讲解
- NGUI学习笔记(五):缓动
- UVA 10735 Euler Circuit 混合图的欧拉回路(最大流,fluery算法)
- UITextField、UILabel和 UITextView四个容易混淆的属性