题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1243

分析:dp[i][j]表示前i个子弹去炸前j个恐怖分子得到的最大分。其实就是最长公共子序列加每个字母值为1,这里每个字母代表的值变化了一下。

状态转移方程:if(s1[i-1]==s2[j-1])dp[nxt][j]=dp[cur][j-1]+val[s1[i-1]];
                              else  dp[nxt][j]=max(dp[nxt][j-1],dp[cur][j]);

#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cstdlib>
#include <vector>
#include <set>
#include <map>
#define LL long long
#define mod 1000000007
#define inf 0x3f3f3f3f
#define N 10010
using namespace std;
char s1[],s2[],str[];
int dp[][],val[];
int main()
{
int n;
while(scanf("%d",&n)>)
{
scanf("%s",str);
memset(val,,sizeof(val));
for(int i=;i<=n;i++)scanf("%d",&val[str[i-]]);
scanf("%s%s",s1,s2);
int len1=strlen(s1);
int len2=strlen(s2);
memset(dp,,sizeof(dp));
int cur=,nxt=;
for(int i=;i<=len1;i++)
{
for(int j=;j<=len2;j++)
{
if(s1[i-]==s2[j-])
{
dp[nxt][j]=dp[cur][j-]+val[s1[i-]];
}
else
dp[nxt][j]=max(dp[nxt][j-],dp[cur][j]);
}
swap(cur,nxt);
}
printf("%d\n",dp[cur][len2]);
}
}

hdu1243(最长公共子序列变形)的更多相关文章

  1. hdu1503 最长公共子序列变形

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1503 题意:给出两个字符串 要求输出包含两个字符串的所有字母的最短序列.注意输出的顺序不能 ...

  2. hdu 1080 dp(最长公共子序列变形)

    题意: 输入俩个字符串,怎样变换使其所有字符对和最大.(字符只有'A','C','G','T','-') 其中每对字符对应的值如下: 怎样配使和最大呢. 比如: A G T G A T G -  G ...

  3. POJ 2250(最长公共子序列 变形)

    Description In a few months the European Currency Union will become a reality. However, to join the ...

  4. 51Nod 1092 回文字符串 | 最长公共子序列变形

    求字符串和其逆的最长公共子序列,需要添加的字符数就为长度-最长公共子序列长 #include "stdio.h" #include "string.h" #de ...

  5. poj1159--Palindrome(dp:最长公共子序列变形 + 滚动数组)

    Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 53414   Accepted: 18449 Desc ...

  6. poj 1080 Human Gene Functions (最长公共子序列变形)

    题意:有两个代表基因序列的字符串s1和s2,在两个基因序列中通过添加"-"来使得两个序列等长:其中每对基因匹配时会形成题中图片所示匹配值,求所能得到的总的最大匹配值. 题解:这题运 ...

  7. hdu1243 最长公共子序列(LCS)

    原题地址 题目分析 这道题基本上是在普通LCS问题上的一点小小的变形,由求LCS的长度,改为求LCS的权值.架构还是不变的.可作为LCS问题的模板题.时间复杂度O(N^2). 注意 题目中的字母都是小 ...

  8. Human Gene Functions POJ 1080 最长公共子序列变形

    Description It is well known that a human gene can be considered as a sequence, consisting of four n ...

  9. DP专辑之最长公共子序列及其变形

    vijos1111(裸的最长公共子序列) 链接:www.vijos.org/p/1111 题解:好久没有写最长公共子序列了,这题就当是复习了.求出最长公共子序列,然后用两个单词的总长度减去最长公共子序 ...

随机推荐

  1. 重操JS旧业第十弹:闭包

    闭包是js最难理解,也是最蛋疼的一个名词,仿佛只可意会不可言传一样,有人说闭包说白了就是函数嵌套,也有人说闭包就是函数能够访问函数外部的变量,而内部的外部访问不了: 貌似都非常有道理,其实仔细想来只不 ...

  2. QT学习小技巧

    原地址:http://blog.csdn.net/ykm0722/article/details/6947250 转载: 分享在比赛中写代码时,发现的几个对写程序很有用的小段代码,虽小但是在我的软件中 ...

  3. eclipse插件maven的使用,web打包成WAR,tomcat下直接运行

    1.首先下载maven  其下载地址为:http://maven.apache.org/download.html   下载apache-maven-3.0.3-bin.zip 环境变量配置为  变量 ...

  4. 开发环境FAQ

    问: Win7下VS2008无法识别WinCE5.0SDK 答:拷贝WinXP环境(安装过VS2008 + WinCE5.0SDK)下C:/Program Files/Microsoft Visual ...

  5. 【UML九种图系列】之如何利用三层来绘制类图、时序图?

    UML并发视图:实体之间行为的交互,是动态.分为:时序图.协作图.状态图.活动图 一.时序图简述: 时序图(Sequence Diagram):描述对象之间的交互行为,按照时间顺序排列. 元素: 角色 ...

  6. [置顶] js中如何复制一个对象,如何获取所有属性和属性对应的值

    在js中如何复制一个对象,例如如下一个js对象. 如果知道这个对象的所有属性自然就可以重新new一个,然后对每个属性赋值,就可以做到,但如果不知道呢?如何创建一个内容相同 的对象呢? var obj= ...

  7. GoldentGate Oracle to Oracle 初始化具体解释

    一.安装GoldenGate[源端,目标端] 1.创建ogg文件夹 [root@source ~]# mkdir /DBSoft/ogg [root@source ~]# cd /DBSoft/ogg ...

  8. Tomcat详细用法学习(四)

    本篇接上一篇<Tomcat详细用法学习(三)>,主要讲解配置虚拟主机.打包web应用成war包和Tomcat的体系结构 对于Tomcat服务器,可以放置多个网站(多个web应用),这就是讲 ...

  9. jquery 动态添加和删除 ul li列表

    今天需要实现一个jquery动态添加和删除  ul li列表中的li行,自己简单的实现乐一个,分享一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  10. VS2010 编译安装boost库

    实践是最好的办法..学习C++,想试试线程,然后打算用boost库,结果boost库编译差点吓到我..没看到比较完整的安装教程..一直耽搁.今天动手.完成了.方法记录如下:1.下载boost从boos ...