_____________________________________动态规划之最长子序列问题______1:两个序列中的______________________________________
2015-12-06 12:15
489 查看
动态规划之最长自序列问题....两个字符串中的最长子序列问题.
参考例题杭电1159.....参考文件.lcy老师的课件....在此对lcy老师致敬..
最长子序列问题.......
下面附上题目
..
以第一个图的公式为基础,推导出下一个图的数字.
参考例题杭电1159.....参考文件.lcy老师的课件....在此对lcy老师致敬..
最长子序列问题.......
下面附上题目
简言之 就是给你两个 字符串 让你从中找出 最长递增 公共子序列
题目的意思就是....给你两个字符串序列求出他们的最长自序列..........下面附上lcy老师可见的截图..
以第一个图的公式为基础,推导出下一个图的数字.
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<vector> #include<set> #include<stack> #include<string> #include<sstream> #include<map> #include<cctype> using namespace std; char a[2222],b[2222]; int c[500][500]; int main() { int i=0,j=0,a1,b1; while(scanf("%s%s",a,b)!=EOF) { a1=strlen(a); b1=strlen(b); memset(c,0,sizeof(c)); for(i=1;i<=a1;i++) { for(j=1;j<=b1;j++) { if(a[i-1]==b[j-1]) c[i][j]=c[i-1][j-1]+1; // 相等的话 取 右上角 else c[i][j]=max(c[i-1][j],c[i][j-1]); // 不相等 的话 在 左边或上边 取一个最大的 } } printf("%d\n",c[a1][b1]); } return 0; }
相关文章推荐
- 【linux】BootLoader简介(c语言编程)
- 黑马程序员——OC基础之NSArray
- java 线程池 队列分析
- 黑马程序员——OC基础之NSMutableString
- (2)JfreeChart之柱状图与折线图复合图
- guava之只读、函数式编程(过滤 转换 约束)、集合与apacheJAVA134-135
- IOS前端浏览器定制
- Android ADT Bundle(Eclipse with ADT) ADT R23
- 黑马程序员——OC基础之字符串截取及替换
- ci框架
- AngularJS的指令用法
- HDU 5590 ZYB's Biology 水题
- Java中堆内存(heap)和栈内存(stack)的区别
- 黑马程序员——OC基础之Block
- C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- Head First Python Notes Chapter II 第二章
- Spark安装和使用
- 超详细图文讲解android studio导入第三方类库的方法
- JAVA编写的金蝶K3ERP用户审批流层复制工具
- DbContext 那些事 —— 数据库初始化