[NWPU][2014][TRN][6]动态规划第一讲——简单线性dp_C题
来源:互联网 发布:分手后做朋友 知乎 编辑:程序博客网 时间:2024/06/06 12:04
题目:
题解:
确定状态:f[i][j]表示前一个字符串的前i位与后一个字符串的前j位的最长公共子序列长度;
状态转移方程:
f[i][j]=f[i-1][j-1]+1 x[i]==y[j];
f[i][j]=max(f[i - 1][j] ,f[i][j - 1]) x[i]!=y[j];
注意一下边界,这是做DP肯定要考虑的;代码:
#include<stdio.h>#include<string.h>int f[1003][1003];int maxint(int a,int b){ return a>b?a:b;}int main(){ char a[1003],b[1003]; int i,j,len1,len2; while(~scanf("%s %s",a,b)) { len1=strlen(a); len2=strlen(b); for(i=0;i<len1;i++) f[0][i]=0; for(j=0;j<len2;j++) f[j][0]=0; for(i=1;i<=len1;i++) for(j=1;j<=len2;j++) if(a[i-1]==b[j-1]) f[i][j]=f[i-1][j-1]+1; else f[i][j]=maxint(f[i-1][j],f[i][j-1]); printf("%d\n",f[len1][len2]); } return 0;}
0 0
- [NWPU][2014][TRN][6]动态规划第一讲——简单线性dp_C题
- [NWPU][2014][TRN][6]动态规划第一讲——简单线性dp_A题
- [NWPU][2014][TRN][6]动态规划第一讲——简单线性dp_B题
- [NWPU][2014][TRN][6]动态规划第一讲——简单线性dp-D题
- [NWPU][2014][TRN][13]线段树第一讲 A - 基础 POJ 2352
- [NWPU][2014][TRN][13]线段树第一讲 B - 基础 POJ 3264
- [NWPU][2014][TRN][3]搜索 总结
- 7.12 [NWPU][2014][TRN][4]搜索 C - 广搜 基础
- [NWPU][2014][TRN][5]二分和贪心 HDU 4296
- [NWPU][2014][TRN][16]图论拓扑排序 H - 基础
- 简单线性动态规划 —— 编辑距离
- NOIP算法总结——关于简单 线性动态规划
- 7.12 [NWPU][2014][TRN][3]搜索 POJ 1562 H - 深搜/广搜 基础
- 7-12 [NWPU][2014][TRN][3]搜索 D - 广搜 基础 POJ 1915
- [NWPU][2014][TRN][5]二分和贪心 M - 贪心 基础 POJ 2709
- [NWPU][2014][TRN][12]并查集D - A Bug's Life POJ 2492
- [NWPU][2014][TRN][16]图论拓扑排序 E - 基础 HDU 1285
- [NWPU][2014][TRN][17]最小生成树 B - 基础 POJ 2421
- TOJ 1563 Round and Round We Go (弃9数)
- java中变量、对象的存储位置
- java 压缩图片实例
- 数据结构 栈
- STL源码剖析 容器 stl_tree.h
- [NWPU][2014][TRN][6]动态规划第一讲——简单线性dp_C题
- 封装 Encapsulation
- 【python】爬虫3——抓取亦舒博客所有文章
- 从卷积到SIFT到multi-scale volume
- 九度oj的入门做法
- Linux lsof命令
- tiny210(s5pv210)移植u-boot(基于 2014.4 版本)——移植网卡
- 关于SQL Server 2005 windows登陆模式无法登陆服务器(错误:18456)的解决办法
- 精简 jdk