hdu1243 最长公共子序列(LCS)
原题地址
题目分析
这道题基本上是在普通LCS问题上的一点小小的变形,由求LCS的长度,改为求LCS的权值。架构还是不变的。可作为LCS问题的模板题。时间复杂度O(N^2)。
注意
题目中的字母都是小写字母,也就是仅仅有26种字符。
不须要开太大的数组。
所以hash就是非常好的一种保存权值的方法。另外吐槽一下。
子弹序列和恐怖分子序列的长度太坑了,由于题目没有给出长度。
我开了个2000个数组,wa了n次。改成2005就AC了。
fuck。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int dp[2005][2005];
char s[30],m[2005],k[2005];
int b[30];
int main()
{int n;while(~scanf("%d",&n)){scanf("%s",s);for(int i=0;i<n;i++){scanf("%d",&b[s[i]-'a']);}scanf("%s%s",m,k);int n1=strlen(m);int n2=strlen(k);memset(dp,0,sizeof(int)*(n1+1));for(int i=0;i<=n2;i++)dp[0][i]=0;for(int i=1;i<=n1;i++){for(int j=1;j<=n2;j++){if(m[i-1]==k[j-1])dp[i][j]=dp[i-1][j-1]+b[m[i-1]-'a'];else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);}}printf("%d\n",dp[n1][n2]);}
}
解读
memset那句。就是给第0行清0。
m保存子弹序列,k保存恐怖分子序列。n1,n2各自是他们的长度。
dp[i][j]保留的是m[i-1]和k[j-1]的最大分数。所以终于的结果会保留在dp[n1][n2]中。
转载于:https://www.cnblogs.com/jhcelue/p/6783346.html
hdu1243 最长公共子序列(LCS)相关推荐
- 动态规划算法解最长公共子序列LCS问题
动态规划算法解LCS问题 作者 July 二零一零年十二月三十一日 本文参考:微软面试100题系列V0.1版第19.56题.算法导论.维基百科. 第一部分.什么是动态规划算法 ok,咱们先来了解下什么 ...
- 动态规划之最长公共子序列(LCS)
最长公共子序列(LCS,Longest Common Subsequence).其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最 ...
- 程序员编程艺术第十一章:最长公共子序列(LCS)问题
程序员编程艺术第十一章:最长公共子序列(LCS)问题 0.前言 程序员编程艺术系列重新开始创作了(前十章,请参考程序员编程艺术第一~十章集锦与总结).回顾之前的前十章,有些代码是值得商榷的,因当时的代 ...
- 算法之最长公共子序列(LCS)问题
算法课上老师留的作业,最长公共子序列LCS(Longest Common Subsequence)问题,首先看到这个问题感觉有点复杂,和最长公共子串不同,公共子序列并不要求元素相邻,看起来只有穷举才能 ...
- 最长公共子序列php,动态规划(最长公共子序列LCS)
概念 求解决策过程最优化的结果 (可能有多个) 把多阶段过程转化为一系列单阶段过程,利用各阶段之间的关系,逐个求解 计算过程中会把结果都记录下,最终结果在记录中找到. 举例 求两个字符串的最长公共子序 ...
- python实现求解最长公共子序列LCS问题
在实现论文<Automatically Generating Models for Botnet Detection>论文的算法中,用到了一个The longest commom subs ...
- 算法导论-----最长公共子序列LCS(动态规划)
目录 一.概念梳理 二.最长公共子序列解决方案 方案1:蛮力搜索策略 方案2:动态规划策略 三.C代码实现 实现1 实现2(空间优化) 一.概念梳理 1. 子序列(subsequence): 一个 ...
- 动态规划表格法解决最长公共子序列(LCS)问题
3.5 最长公共子序列(LCS) 前言:图片是博主自己画的,转载请注明出处哦 3.5.1 问题描述 最长公共子序列(Longest Common Subseuence,LCS)问题:给定两个字符串,求 ...
- 最长公共子序列 (LCS) 详解+例题模板(全)
欢迎访问https://blog.csdn.net/lxt_Lucia-- 宇宙第一小仙女\(^o^)/-萌量爆表求带飞=≡Σ((( つ^o^)つ~ dalao们点个关注呗- ------------ ...
- 相似度:最长公共子序列--LCS
一.概念 1.子序列 一个特定序列的子序列就是将给定序列中零个或多个元素去掉后得到的结果(不改变元素间相对次序).如序列[A,B,C,B,D,A,B]的子序列有:[A,B],[B,C,A],[A,D, ...
最新文章
- Boost:符号symbols找到null的测试程序
- NIPS 2016 Highlighted Papers
- Ubuntu美化方案
- 遍历列表python_python中列表的遍历
- 面试遇到职场PUA,只能说兄弟你还嫩了点
- Linux 离奇磁盘爆满,如何解决? | 原力计划
- (转)华为面试题算什么,这个背会了外企随便进
- C#: switch语句的重构『网摘』
- hmcl整合包导入_我只用了一篇文章就完成了Spring+SpringMVC+MyBatis详细整合教程
- xshell写JS脚本自动进行操作
- 用Python制作核酸检测日历
- 物理学家用AI改写教科书!质子中发现新的夸克,可能性高达99.7%
- 美妆行业如何在小红书营销推广?美妆品牌的线上推广怎么宣传更有效果?
- 【转载】TextView源码解析
- 麦客存储侯峰:Filecoin生态构建与价值革命 | 星际崛起IPFS云峰会
- ARM架构Generic Interrupt Controller(GIC)之Distributor和CPU interface功能介绍
- python爬虫,g-mark网站图片数据爬取及补坑
- 计算机动漫学的什么软件,电脑动漫绘画哪个软件比较好?
- 解决Spring JPA自动更新数据库的问题
- html5 meter样式,使用HTML5“meter”元素
热门文章
- 段上的等待事件 —— enq: HW - contention(oracle)
- 安装phpDocumentor
- Php与Mysql关系揭秘
- 【Go语言】I/O专题
- 如何使用JS来改变CSS样式
- 使用cardview和recycleview时碰到的一些问题
- 计算机毕业生学士服,特殊毕业季,这些“别人家的高校”为毕业生送上定制版学士服...
- vue3初探-工程化项目架构-笔记
- 初学者python编辑器用geany可以吗_面向初学者的Python编辑器Mu
- html5 拖放游戏,HTML5拖放API实现拖放排序的实例代码