【模板】51nod 1006 最长公共子序列Lcs
2024-08-30 22:14:11
【题解】
dp转移的时候记录一下,然后倒着推出答案即可。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
#define rg register
#define N 2000
using namespace std;
int n,m,tot,f[N][N],from[N][N][];
char s1[N],s2[N],ans[N];
int main(){
scanf("%s",s1+);
scanf("%s",s2+);
n=strlen(s1+); m=strlen(s2+);
for(rg int i=;i<=n;i++)
for(rg int j=;j<=m;j++)
if(s1[i]==s2[j]) f[i][j]=f[i-][j-]+,from[i][j][]=i-,from[i][j][]=j-;
else{
if(f[i-][j]>f[i][j-]) f[i][j]=f[i-][j],from[i][j][]=i-,from[i][j][]=j;
else f[i][j]=f[i][j-],from[i][j][]=i,from[i][j][]=j-;
}
while(n&&m){
if(s1[n]==s2[m]) ans[++tot]=s1[n];
int t1=from[n][m][],t2=from[n][m][];
n=t1,m=t2;
}
for(rg int i=tot;i;i--) printf("%c",ans[i]);
return ;
}
最新文章
- h5上传图片及预览
- sublime简要笔记
- 用Supervisord管理Python进程
- Introduction of SQLite
- Different Approaches for MVCC
- 用通俗易懂的大白话讲解Map/Reduce原理
- DDD:如何表达聚合之间的关系?
- Chapter 3: Connector(连接器)
- sqlalchemy - day1
- initrd.gz的解压和制作
- android 巧用资源文件(不断积累)
- css鼠标样式cursor
- 移动端页面 css reset
- 斗地主案例(利用集合/增强for等技术)
- SpringCloud的注解:EnableEurekaClient vs EnableDiscoveryClient
- [kuangbin带你飞]专题二十二 区间DP-B-LightOJ - 1422
- 洛谷P4389 付公主的背包--生成函数+多项式
- Git神器使用相关
- SSM框架的搭建和测试(Spring+Spring MVC+MyBatis)
- 安装Linux系统
热门文章
- CF 1042 A Benches —— 二分答案(水题)
- 第十四周 Leetcode 315. Count of Smaller Numbers After Self(HARD) 主席树
- Real-Time Compressive Tracking,实时压缩感知跟踪算法解读
- Python print 输出不换行,只有空格
- ffmpeg 有用命令 (转载)
- Win10出现键盘未失灵,按下的键都是快捷键的问题
- SQL 事务篇和约束
- random模块思维导图
- Android项目模块化遇到的问题
- 通过路由器的IP映射来解决,两个不同IP地址的PC机之间的从LAN口到WAN口的单向通讯问题