最长公共子序列
来源:互联网 发布:js获取三个月前的日期 编辑:程序博客网 时间:2024/05/01 22:22
if(a[i]==a[j]) dp[i][j]=dp[i-1][j-1]+1为什么是减一呢?其实很简单最后一个匹配成功那它的最大值一定是前面的加一得来的。else dp[i][j]=max{dp[i-1][j],dp[i][j-1]};这里也是一样的道理。
#include<stdio.h>#include<string.h>int a[100],b[1000],n,m,c[101][101];void fun(){memset(c,0,sizeof c);int i,j,k;for(i=1;i<=n;i++)for(j=1;j<=m;j++){if(a[i]==b[j]){c[i][j]=c[i-1][j-1]+1;}else{if(c[i-1][j]>c[i][j-1])c[i][j]=c[i-1][j];elsec[i][j]=c[i][j-1];}}return ;}int main(){ int t,i,j,k; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=1;i<=n;i++)scanf("%d",a+i); scanf("%d",&m); for(i=1;i<=m;i++)scanf("%d",b+i); fun();printf("%d\n",c[n][m]); } return 0;}
0 0
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列...
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 进线程, 进线程句柄, 进线程ID, 句柄与ID间转换, 伪句柄, 伪句柄转为句柄
- strace命令用法详解
- 尝试cython和openmp
- windows phone社交分享SDK发布
- 一个简单但详细的解释Windows文件映射读取数据文件的例子
- 最长公共子序列
- JSP/SERVLET路径问题
- 在线函数绘制网站x2
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- erlang学习记录
- _log_io_size含义
- android远程控制(一)----发现驱动文件里代码含义
- iso_study_nineth Uivew2
- Android 安全架构及权限控制机制剖析