求最长公共子序列的子序列 dfs+dp
求最长公共子序列的子序列 dfs+dp一道面试题要求删除掉任意长度的字符串s1之后,获得的最长的回文串都有哪些?因为回文串的性质,反转后不变,那么可以将字符串s1反转成s2。如果存在一个最长的回文串,那么肯定是s1和s2的最长公共子序列。通常我们会求出最长公共子序列的长度alen,这次要把所有的子序列输出来。可以通过观察dp矩阵,发现这样一个规律(图忘记从哪里盗来的了)可以通过标有圆圈的点,...
求最长公共子序列的子序列 dfs+dp一道面试题要求删除掉任意长度的字符串s1之后,获得的最长的回文串都有哪些?因为回文串的性质,反转后不变,那么可以将字符串s1反转成s2。如果存在一个最长的回文串,那么肯定是s1和s2的最长公共子序列。通常我们会求出最长公共子序列的长度alen,这次要把所有的子序列输出来。可以通过观察dp矩阵,发现这样一个规律(图忘记从哪里盗来的了)可以通过标有圆圈的点,...
题目链接题目描述有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。#include<iostream> #include<algorithm> using namespace std; const int maxn = 12; int m...
题目链接题目描述假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index为0,aa的Index为1,aaa的Index为2,以此类推。 编写一...
题目链接题目描述输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来#include<iostream> #include<algorithm> #include<cstring> using namespace std; const int maxn = 20; int num[m...
题目链接题目描述给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。地牢的出口可能在任意某个可以通行的位置上。牛牛想知道最坏情况下,他需要多少步才可以离开这个地牢。#include&...