DP
文章平均质量分 53
一只会冒泡的猫
不是一个人的努力
展开
-
编辑距离
编辑距离 算法算法过程str1或str2的长度为0返回另一个字符串的长度。 if(str1.length==0) return str2.length; if(str2.length==0) return str1.length;初始化(n+1)*(m+1)的矩阵d,并让第一行和列的值从0开始增长。扫描两字符串(n*m级的),如果:str1[i] == str2[j],用t原创 2017-07-30 13:50:51 · 213 阅读 · 1 评论 -
回文字符串
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。每个字符串都可以通过向中间添加一些字符,使之变为回文字符串。例如:abbc 添加2个字符可以变为 acbbca,也可以添加3个变为 abbcbba。方案1只需要添加2个字符,是所有方案中添加字符数量最少的。Input输入一个字符串Str,Str的长度 Output输出最少添加多少个字符可以使之变为回文字串原创 2017-07-30 14:20:11 · 352 阅读 · 0 评论 -
机器人走方格
M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。Input第1行,2个数M,N,中间用空格隔开。(2 Output输出走法的数量。Sample Input2 3Sample Output3#include#includeusing namespace std原创 2017-07-21 16:24:20 · 351 阅读 · 0 评论 -
最长公共子序列Lcs
1.给出两个字符串A B,求A与B的最长公共子序列的长度(子序列不要求是连续的)。2.给出两个字符串A B,求A与B的最长公共子序列子串(子序列不要求是连续的)。比如两个串为:abcicbaabdkscabab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。最大长度为4,一个是求长度,一个是要求最长子串原创 2017-07-21 19:04:00 · 230 阅读 · 0 评论 -
整数划分--DP
5. 数的划分问题描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。 例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5; 1,5,1; 5,1,1; 问有多少种不同的分法。输入格式n,k输出格式 一个整数,即不同的分法样例输入7 3样例输出4 {四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;}解题思路:dp[n][k]表示把划分为k个数的方案...原创 2018-03-22 15:29:29 · 663 阅读 · 0 评论 -
最长子序列
#include#include#includeusing namespace std;int f(char* x, char* y){ if(strlen(x)==0) return 0; if(strlen(y)==0) return 0; if(*x == *y) { //printf("%s\n",x+1); return f(x+1原创 2018-03-22 20:58:42 · 252 阅读 · 0 评论 -
整数划分 dp
蒜头君特别喜欢数学。今天,蒜头君突发奇想:如果想要把一个正整数 nn 分解成不多于 kk 个正整数相加的形式,那么一共有多少种分解的方式呢?蒜头君觉得这个问题实在是太难了,于是他想让你帮帮忙。输入格式共一行,包含两个整数 n(1 \leq n \leq 300)n(1≤n≤300) 和 k(1 \leq k \leq 300)k(1≤k≤300),含义如题意所示。输出格式一个数字,代表所求的方案数...原创 2018-03-26 10:10:52 · 313 阅读 · 0 评论