http://acm.hdu.edu.cn/showproblem.php?pid=4681

枚举A串和B串包含C串的区间  枚举区间端点算左右两端最长公共子序

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
#include<algorithm>
using namespace std;
#define N 1010
char s1[N],s2[N],s3[N];
int dp1[N][N],dp2[N][N];
struct node
{
int l,r;
}p1[N],p2[N];
int main()
{
int i,j,t,k1,k2,k3,kk=;
scanf("%d",&t);
while(t--)
{
kk++;
memset(dp1,,sizeof(dp1));
memset(dp2,,sizeof(dp2));
scanf("%s%s%s",s1,s2,s3);
k1 = strlen(s1);
k2 = strlen(s2);
k3 = strlen(s3);
for(i = ; i <= k1 ; i++)
for(j = ; j <= k2 ;j++)
{
if(s1[i-]==s2[j-])
dp1[i][j] = dp1[i-][j-]+;
else
dp1[i][j] = max(dp1[i-][j],dp1[i][j-]);
}
for(i = k1 ; i>= ; i--)
for(j = k2 ; j >= ; j--)
{
if(s1[i-]==s2[j-])
dp2[i][j] = dp2[i+][j+]+;
else
dp2[i][j] = max(dp2[i+][j],dp2[i][j+]);
}
int g = ;j=;
for(i = ; i < k1 ; i++)
if(s1[i]==s3[j])
{
j++;int a=i;
if(j<k3)
{
for(a = i+ ; a < k1 ; a++)
{
if(s1[a]==s3[j])
j++;
if(j==k3)
break;
}
}
if(j==k3)
{
g++;
p1[g].l = i;
p1[g].r = a+;
}
j = ;
}
int o=;j=;
for(i = ; i < k2 ; i++)
if(s2[i]==s3[j])
{
j++;int a=i;
if(j<k3)
{
for(a = i+ ; a < k2 ; a++)
{
if(s2[a]==s3[j])
j++;
if(j==k3)
break;
}
}
if(j==k3)
{
o++;
p2[o].l = i;
p2[o].r = a+;
}
j = ;
}
int maxz=;
for(i = ; i <= g ; i++)
for(j = ; j <= o ; j++)
{
int x = dp1[p1[i].l][p2[j].l],x2 = dp2[p1[i].r+][p2[j].r+];
maxz = max(maxz,x+x2);
}
printf("Case #%d: %d\n",kk,maxz+k3);
}
return ;
}

hdu4681String的更多相关文章

随机推荐

  1. js和jq使用submit方法无法提交表单

    昨天,在做一个表单异步提交内容的时候,遇到很奇怪的问题,submit()方法无法进行提交,每次提交都是把 当前给刷新了,网络抓包发现,每次都是 get方式去获取 当前页面,完全没有post 请求,想着 ...

  2. bzoj2287:[POJ Challenge]消失之物

    思路:首先先背包预处理出f[x]表示所有物品背出体积为x的方案数.然后统计答案,利用dp. C[i][j]表示不用物品i,组成体积j的方案数. 转移公式:C[i][j]=f[j]-C[i][j-w[i ...

  3. BYTE、WORD与DWORD类型

    Original Link:  http://hi.baidu.com/vnxuaqndtncrxyr/item/f67c83872cf80cd65e0ec10d Author: 厚积薄发 在Visu ...

  4. 回溯算法之n皇后问题

    今天在看深度优先算法的时候,联想到DFS本质不就是一个递归回溯算法问题,只不过它是应用在图论上的.OK,写下这篇博文也是为了回顾一下回溯算法设计吧. 学习回溯算法问题,最为经典的问题我想应该就是八皇后 ...

  5. 最受欢迎的15个Python开源框架

    GitHub中15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. 1.Django: Python Web应用开发框架 Django 应 ...

  6. Python3 正则表达式

    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦, ...

  7. AOP(以MVC中的过滤器为例)

    MVC里面的Filter public class AOPFilterAttribute : ActionFilterAttribute, IExceptionFilter { public void ...

  8. Sublime Text 3 配置浏览器预览路径 localhost

    原文链接:http://jingyan.baidu.com/article/15622f2419ce79fdfcbea5ea.html 按步骤设置成功!感谢大侠! 以下是原文: Sublime Tex ...

  9. PHP之图形处理

    图形处理 PHP 的图形处理,主要功能集中在 PHP 的图形处理函数. 需要先掌握一些要点.什么叫图片,怎么显示图片. 所谓的图片,其实也是一种文件,只是内容不是我们肉眼直接可见的.如果我们用记事本打 ...

  10. 推荐:PHPCMS v9 安全防范教程!

    一.目录权限设置很重要:可以有效防范黑客上传木马文件. 如果通过 chmod 644 * -R 的话,php文件就没有权限访问了. 如果通过chmod 755 * -R 的话,php文件的权限就高了. ...