hdu1080】的更多相关文章

题意,有两个字符串,分别由四个字母构成,字母之间有不同的相似度,允许在两个字符串都按原顺序排列的情况下进行字母与字母之间的匹配,也可以让字母与空格匹配,即相当于在字符串中间加空格来一一匹配,每个字母与空格也有相应的相似度,但空格不能和空格匹配.问当给出两个字符串时,求它们的最大相似度. 我一开始的想法也是想类似于最长公共子序列的做法,只是将匹配数变成了一个权值,总的相似度.这个方向是正确的,但是我却在细节上犯了糊涂,我一直在考虑当第一条链的第 i 个和第二条的第 j 个相匹配,这样的情况,从前面…
Human Gene Functions Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3103    Accepted Submission(s): 1761 Problem Description It is well known that a human gene can be considered as a sequence,…
我用的dp是n^3的, dp[i][j] 表示在s串的i个前和t串的j个前,s[i],t[j]为最末端的两个串得到的最大值. 状态转移方程为: 之前将s和t串最尾端添加'-' ;i<=n;i++) { ;j<=m;j++) { if(i==n&&j==m) break; ; ;k>=;k--) { dp[i][j]=max(dp[i][j],dp[i-][k]+tmp); tmp += fuc('-',t[k]); } tmp=; ;k>=;k--) { dp[i]…
#include<iostream> using namespace std; char s1[105],s2[105]; int val[5][5]={ {5,-1,-2,-1,-3}, {-1,5,-3,-2,-4}, {-2,-3,5,-2,-2}, {-1,-2,-2,5,-1}, {-3,-4,-2,-1,-1000000}}; int dp[105][105]; //dp[i][j]表示字符串i和j的最长公共子序列 int n,m; int max(int a,int b) { r…
题目: Problem Description It is well known that a human gene can be considered as a sequence, consisting of four nucleotides, which are simply denoted by four letters, A, C, G, and T. Biologists have been interested in identifying human genes and deter…
题意: 给你每种字符匹配的权值大小,给你两个串,长度小的串可以在小串里面添加空格和大串匹配,问你一个最大匹配权值. 思路: 有点类似于LCS吧,我们在求两个串的LCS的时候,不行的就扔掉了,在这里就是不行的就给他匹配了一个空格: dp[i][j-1]           j匹配空格: dp[i-1][j]           i匹配空格: dp[i-1][j-1]       i和j匹配: 初始化 dp[i][0]    i匹配空格 dp[0][j]    j匹配空格 #include <bit…
dp[i][j]表示配对的最大值. dp[i-1][j]表示s1[i-1]与'-'配对. dp[i][j-1]表示s2[j-1]与'-'配对. dp[i-1][j-1]表示s1[i-1]与s2[j-1]配对. dp[i][j]=max(dp[i-1][j]+mp[s1[i-1]]['-'],dp[i][j-1]+mp['-'][s2[j-1]],dp[i-1][j-1]+mp[s1[i-1]][s2[j-1]]); #include<stdio.h> #include<string.h&…
前言:我们队的dp一直是我在做,说不上做的很顺,有些可以做,有些不能做.到现在为止,做dp题目也有七八十道了,除了背包问题的题目我可以说有百分之七八十的把握ac的话,其他类型的dp,还真没有多大把握.越是做dp题,就越是发现dp的博大精深,我想,dp这个专题,对于我这样的人来说,做上两百道,才能真正有所把握......... 25道dp题题目: 1.hdu  1503 题意:给你两个字符串,要你用这两个字符串组成这样一个字符串,在组成的字符串中字符的相对顺序不变的情况下,可以在组成的字符串中找到…