POJ1080】的更多相关文章

http://poj.org/problem?id=1080 (题目链接) 题意 给出两个只包含字母ACGT的字符串s1.s2,可以在两个字符串中插入字符“-”,使得s1与s2的相似度最大. Solution 动态规划. 用f[i][j]表示字符串s1前i位和s2前j位的最大相似度,转移很简单,直接看程序吧,边界条件要注意,当i=0或j=0时,就等于是在长度等于0的字符串中全部插入“-”,使得两字符串长度相等的相似度.打个表预处理出每两个字符的相似度比较方便后面的操作. 代码 // poj108…
题目链接:https://vjudge.net/problem/POJ-1080 参考博客:https://yq.aliyun.com/ziliao/372259 题意:给两个字符串,只含有'A','G','C','T'四个字符,现在根据题目给出的表里面的值,在两个字符串里面增加'-',使最后的两个字符匹配的值最大,输出最大的值. 思路:开一个二维数组,dp[i][j]表示str1[i]和str2[j]之前的字符相匹配可以得到的最大价值,要确定两个要素,一个是递推公式,一个是初始化的值,首先先推…
题目链接: https://cn.vjudge.net/problem/POJ-1080 题目大意: 给定两组序列,要你求出它们的最大相似度,每个字母与其他字母或自身和空格对应都有一个打分,求在这两个字符串中插入空格,让这两个字符串的匹配分数最大 解题思路: 类似LCS,以dp[i][j]表示s1前i位和s2前j位的最优解. 递推式为: 先不考虑括号 dp[i][j]只由dp[i-1][j-1]递推而来 if(s1[i] == s2[j])dp[i][j] = dp[i - 1][j - 1]…
//Accepted 200 KB 0 ms //dp //dp[i][j]表示s1用前i个,s2用前j个字符能得到的最大分数 //dp[i][j]=max(dp[i-1][j]+score[s1[i-1]]['-'], // dp[i][j-1]+score[['-'][s2[j-1]], // dp[i-1][j-1]+score[s1[i-1]][s2[j-1]]) //注意初始化 //dp[0][0]=0; //dp[0][i]=dp[0][i-1]+score['-'][s2[i-1]…
题目链接. 分析: 和 LCS 差不多. #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <map> using namespace std; ; ] = { {, -, -, -, -}, {-, , -, -, -}, {-, -, , -, -}, {-, -, -, , -}, {-, -, -, -, } }; in…
题意读了半年,唉,给你两串字符,然后长度不同,你能够用'-'把它们补成同样长度,补在哪里取决于得分,它会给你一个得分表,问你最大得分 跟LCS非常像的DP数组 dp[i][j]表示第一个字符串取第i个元素第二个字符串取第三个元素,然后再预处理一个得分表加上就可以 得分表: score['A']['A'] = score['C']['C'] = score['G']['G'] = score['T']['T'] = 5; score['A']['C'] = score['C']['A'] = -1…
一道字符串DP,然而不需要状压之类的玄学操作 题目大意:给你两个串,由'A','C','G','T'组成,现在你可以在这两个串中的某些位置插入'-',最终要使得它们的长度相等 给出两个字符匹配时的匹配度表格(题面中给出),让你求如何添加'-'使得总匹配度最大 很简单的DP,我们用f[i][j]表示使用了第一个串中前i个字符,第二个串中前j个字符(注意一定是使用了,即人为填上去的'-'不算) 然后对于每一个位置都有三种选择: 让两个串相应位置上的字符直接匹配,即f[i][j]=max(f[i][j…
Human Gene Functions Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2799    Accepted Submission(s): 1587 Problem Description It is well known that a human gene can be considered as a sequence,…
题面 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 determining their function…
初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      (4)递推.      (5)构造法.(poj3295)      (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法:      (1)图的深度优先遍历和广度优先遍历.      (2)最短路径算法(dijkstra,bellman-ford…