题目链接

回溯输出解

 #include <bits/stdc++.h>
using namespace std;
const int N=;
int dp[N][N],dir[N][N];
char s1[N],s2[N];
int n1,n2;
void m_printf (int x,int y) {
if (x<=||y<=) {
for (int i=;i<=x;i++)
putchar(s1[i]);
for (int i=;i<=y;i++)
putchar(s2[i]);
return ;
}
if (dir[x][y]==) {
m_printf(x-,y-);
putchar (s1[x]);
}
else if (dir[x][y]>) {
m_printf(x-,y);
putchar (s1[x]);
}
else {
m_printf(x,y-);
putchar (s2[y]);
}
return ;
}
int main ()
{
while (~scanf (" %s %s",s1+,s2+)) {
memset (dp,,sizeof(dp));
int n1=strlen(s1+);
int n2=strlen(s2+);
for (int i=;i<=n1;i++)
for (int j=;j<=n2;j++) {
if (s1[i]==s2[j]) {
dir[i][j]=;
dp[i][j]=dp[i-][j-]+;
}
else if (dp[i-][j]>dp[i][j-]) {
dir[i][j]=;
dp[i][j]=dp[i-][j];
}
else {
dir[i][j]=-;
dp[i][j]=dp[i][j-];
}
}
// printf("%d\n",dp[n1][n2]);
m_printf(n1,n2);
printf("\n");
}
return ;
}

最新文章

  1. 禁止uiscrollview垂直方向滚动,只允许水平方向滚动;或只允许垂直方向滚动
  2. 使用Struts 2框架实现文件下载
  3. 初学hibernate之缓存
  4. react-amazeui-touch 妹子Ui移动端学习
  5. 路由器开发板上的TTL线连接方法
  6. HTTPS 升级指南
  7. phpstorm运行在浏览器中执行php文件报502错误
  8. WCF - 消息
  9. expected function body after function declarator
  10. 二分-poj-3685-Matrix
  11. 滚动条QScroolBar实现滚屏功能(屏幕过大,覆盖wheelEvent来处理滑轮事件)
  12. Git——git 上传时 遗漏文件解决办法
  13. SUPPORTDIR引用的文件的加入
  14. highcharts柱状图和饼图的数据填充
  15. 函数的上下文就是函数里面的this是谁
  16. java学习总结篇二--3 种简单排序
  17. python第二篇博客,关于数据类型的详细讲解
  18. 使用MediatR重构单体应用中的事件发布/订阅
  19. leetcode338
  20. Android避免OOM(内存优化)

热门文章

  1. linux文件权限多一个+啥意思
  2. charles抓包工具使用方法
  3. ubuntu默认启动方式修改 psensor命令
  4. python load mat
  5. 分布式链路追踪(Sleuth、Zipkin)
  6. String常用方法
  7. day16 初识面向对象
  8. 【转】Java迭代:Iterator和Iterable接口
  9. 主机访问虚拟机centos7的服务器
  10. TensorFlow学习笔记——节点(constant、placeholder、Variable)