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

d[i][j] 代表第i 个字符与第 j 个字符的最大的得分。,,

最大公共子序列变形

 #include <cstring>
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = +; char s[maxn], x[maxn], y[maxn];
int f[], val[maxn], d[maxn][maxn];
int main()
{
int n, i, j;
int sum;
while(~scanf("%d", &n))
{
sum = ;
scanf("%s", s);
for(i = ; i < n; i++)
scanf("%d", &val[i]);
for(i = ; i < strlen(s); i++)
f[s[i]] = val[i];
scanf("%s%s", x, y);
int len1 = strlen(x);
int len2 = strlen(y);
for(i = ; i <= len1; i++)
d[i][] = ;
for(i = ; i <= len2; i++)
d[][i] = ;
for(i = ; i <= len1; i++)
for(j = ; j <= len2; j++)
if(x[i-]==y[j-])
{
d[i][j] = d[i-][j-] + f[x[i-]];
}
else
{
if(d[i-][j] > d[i][j-])
d[i][j] = d[i-][j];
else
d[i][j] = d[i][j-];
}
printf("%d\n", d[len1][len2]);
}
return ;
}

hdu 1243 反恐训练营(dp 最大公共子序列变形)的更多相关文章

  1. HDU 1243 反恐训练营(最长公共序列)

    反恐训练营 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  2. HDU - 1243 - 反恐训练营

    先上题目: 反恐训练营 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  3. HDU 1243 反恐训练营 (动态规划求最长公共子序列)

    反恐训练营 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  4. hdu 1243 反恐训练营 最长公共字序列

    此题的题意很明确,就是求最长公共子序列: #include<iostream> #include<algorithm> #include<cstdio> #incl ...

  5. 【HDOJ】1243 反恐训练营

    LCS. /* 1243 */ #include <cstdio> #include <cstring> #include <cstdlib> #define MA ...

  6. HDU1243:反恐训练营

    题目链接:反恐训练营 题意:本质上是求最大公共子序列,然后加上一个权值 分析:见代码 //公共子序列问题 //dp[i][j]表示前s1的前i个与s的前j个匹配得到的最大公共子序列 #include& ...

  7. 反恐训练营(LCS)

    反恐训练营 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  8. HDU 5629 Clarke and tree dp+prufer序列

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=562 题意: 求给每个节点的度数允许的最大值,让你求k个节点能组成的不同的生成树个数. 题解: 对于n ...

  9. HDU 5707 Combine String (DP,LCS变形)

    题意:给定三个字符串,问你第三个是不是由第一个和第二个组成的. 析:当时比赛是没有做出来啊...一直WA,就是没有判断长度,第一个和第二个和是不是和第三个一样,这个忘记... 我们用d[i][j]表示 ...

随机推荐

  1. ios map 显示用户位置

    昨天遇到个奇怪的问题,用户的位置在地图中死活不显示,showUserLocation也设置了,最后发现是因为实现了 mapView protocol中的一个方法: -(MKAnnotationView ...

  2. [nowCoder] 子数组最大乘积

    给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积.例如arr=[-2.5,4,0,3,0.5,8,-1],子数组[3,0.5,8]累乘可以获得最大的乘积12,所以 ...

  3. uva 1056

    floyd 算法 用了stl 的map 存名字的时候比较方便 #include <cstdio> #include <cstdlib> #include <cmath&g ...

  4. 想知道吗?CTO 比普通程序员强在哪?

    互联网的蓬勃发展,让无数的程序员身价水涨船高,都变成了「香饽饽」,更有了不少「创业」,「当上 CTO,迎娶白富美的传说」.都说不想当元帅的士兵不是好士兵,我觉得这件事见仁见智,但提升自己的价值,让自己 ...

  5. nginx模块开发(18)—日志分析

    1.日志简介 nginx日志主要有两种:访问日志和错误日志.访问日志主要记录客户端访问nginx的每一个请求,格式可以自定义:错误日志主要记录客户端访问nginx出错时的日志,格式不支持自定义.两种日 ...

  6. HDU3068 最长回文 Manacher算法

    Manacher算法是O(n)求最长回文子串的算法,其原理很多别的博客都有介绍,代码用的是clj模板里的,写的确实是异常的简洁,现在的我只能理解个大概,下面这个网址的介绍比较接近于这个模板,以后再好好 ...

  7. TDD 用语

    OOP  封装  继承  多态 SOLID  SRP 单一职责  Single Responsibility Principle  OCP 开放封闭  Open/Close Principle  LS ...

  8. springMVC获取request和response

    转载:http://blog.sina.com.cn/s/blog_7085382f0102v9jg.html 1.参数 例如: @RequestMapping("/test") ...

  9. Java学习笔记之:Java流程控制

    一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...

  10. GuessNumber

    import java.util.*; public class GuessNumber { public static void main(String[] args) { int num = ne ...