带跨越式的LCS,同样是在朴素的LCS上加入一种跨越一段的转移,这样我们要预处理出跨越一段给定串的转移函数。

这个题同样可以正反两边LCS做

呆马:

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#define inf 0x3f3f3f3f
#define maxn 1020 using namespace std; char s[maxn],t[maxn],d[maxn];
int f[][maxn][maxn],bs[maxn][maxn],bt[maxn][maxn]; int main()
{
int Case;
scanf("%d",&Case);
for (int o=;o<=Case;o++)
{
scanf(" %s %s %s",s+,t+,d+);
int ls=strlen(s+), lt=strlen(t+), ld=strlen(d+);
memset(bs,,sizeof(bs)); for (int i=;i<=ls;i++)
if (s[i]==d[]) bs[][i]=i;
else bs[][i]=bs[][i-];
for (int i=;i<=ld;i++)
for (int j=;j<=ls;j++)
if (s[j]==d[i]) bs[i][j]=bs[i-][j-];
else bs[i][j]=bs[i][j-]; memset(bt,,sizeof(bt)); for (int i=;i<=lt;i++)
if (t[i]==d[]) bt[][i]=i;
else bt[][i]=bt[][i-];
for (int i=;i<=ld;i++)
for (int j=;j<=lt;j++)
if (t[j]==d[i]) bt[i][j]=bt[i-][j-];
else bt[i][j]=bt[i][j-]; memset(f,,sizeof(f));
for (int i=;i<=ls;i++)
for (int j=;j<=lt;j++)
{
f[][i][j]=max(f[][i-][j],f[][i][j-]);
f[][i][j]=max(f[][i-][j],f[][i][j-]);
if (s[i]==t[j])
{
f[][i][j]=max(f[][i][j],f[][i-][j-]+);
if (f[][i-][j-])
f[][i][j]=max(f[][i][j],f[][i-][j-]+);
}
if (bs[ld][i] && bt[ld][j])
f[][i][j]=max(f[][i][j],f[][bs[ld][i]-][bt[ld][j]-]+ld);
}
printf("Case #%d: %d\n",o,f[][ls][lt]);
}
return ;
}

string

Hdu 4681 2013 Multi-University Training Contest 8 String的更多相关文章

  1. hdu 4915 Parenthese sequence--2014 Multi-University Training Contest 5

    主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4915 Parenthese sequence Time Limit: 2000/1000 MS (Ja ...

  2. hdu 4902 Nice boat--2014 Multi-University Training Contest 4

    题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=4902 Nice boat Time Limit: 30000/15000 MS (Java/Othe ...

  3. hdu 4925 Apple Tree--2014 Multi-University Training Contest 6

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4925 Apple Tree Time Limit: 2000/1000 MS (Java/Others ...

  4. HDU校赛 | 2019 Multi-University Training Contest 6

    2019 Multi-University Training Contest 6 http://acm.hdu.edu.cn/contests/contest_show.php?cid=853 100 ...

  5. HDU校赛 | 2019 Multi-University Training Contest 5

    2019 Multi-University Training Contest 5 http://acm.hdu.edu.cn/contests/contest_show.php?cid=852 100 ...

  6. HDU校赛 | 2019 Multi-University Training Contest 4

    2019 Multi-University Training Contest 4 http://acm.hdu.edu.cn/contests/contest_show.php?cid=851 100 ...

  7. HDU校赛 | 2019 Multi-University Training Contest 3

    2019 Multi-University Training Contest 3 http://acm.hdu.edu.cn/contests/contest_show.php?cid=850 100 ...

  8. HDU校赛 | 2019 Multi-University Training Contest 2

    2019 Multi-University Training Contest 2 http://acm.hdu.edu.cn/contests/contest_show.php?cid=849 100 ...

  9. HDU校赛 | 2019 Multi-University Training Contest 1

    2019 Multi-University Training Contest 1 http://acm.hdu.edu.cn/contests/contest_show.php?cid=848 100 ...

  10. HDU 6102 - GCDispower | 2017 Multi-University Training Contest 6

    个人感觉题解的复杂度很玄,参不透,有没有大佬讲解一下- - /* HDU 6102 - GCDispower [ 数论,树状数组] | 2017 Multi-University Training C ...

随机推荐

  1. sublime3+quick3.5 完整使用教程

    sublime3+quick3.5 完整使用教程 Administrator   2015-07-15 14:43:08 1. 安装Sublime3   2. 注册Sublime3     Help- ...

  2. 我的ES6学习之路(一)

    强烈推荐  阮一峰写的<ECMAScript6入门> let和const命令 let命令: let用于声明变量,用法和var相似,但是不完全相同,有以下几点区别 ① let命令只在当前作用 ...

  3. 第九周 psp

    团队项目PSP 一:表格     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 9:50 12:45 35 45 80 分析与 ...

  4. /etc/sudoers文件损坏修复

    1. 重启(开机)时按Shift键(这时就会进入grub模式) 选择第二项 进入高级选项

  5. Oracle数据库的导入导出

    1.导出Oracle数据 A.使用命令行导出数据 exp username/password @database file= fullpath(如:D:\data.dmp) full=y B.使用工具 ...

  6. 《Linux及安全》期中总结&《Linux内核分析》期终总结

    [5216 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK NINE ...

  7. tomcat底层原理实现

    1.首先完成一个server类,用来接收客户端的请求:代码都在一个while(true)循环中,模拟tomcat一直在启动,其中绑定一个端口,用来监听一个端口,然后创建一个输入流,获取请求的输入流,然 ...

  8. shell计算小问题

    1.shell处理两数相加时报错: req_all=$(($hits+$misses)) error: invalid arithmetic operator (error token is &quo ...

  9. Nginx location 匹配顺序整理

    Nginx location模块整理 具体的Nginx安装就不在这里描述了,这里只是为了对location的描述 Nginx环境 a. 查看当前系统cat /etc/redhat-release [r ...

  10. 安装redis

    第一步 下载 第二步 解压 .tar.gz 第三步 make cd redis- make 第四步  启动试一下 src/redis-server 好了 :C Jan ::13.501 # Warni ...