"Increasing Speed Limite HDU 3030" 题意 给你一个长度为m的数组A,你可以通过给的X,Y,Z计算获得一个长度为n的数组,问你这个n长的序列有多少个非空严格上升序列。 思路 dp $dp[i]$: 以第i个元素为结尾的非空严格上升序列个数 $dp[i] =\sum_{ ...
分类:
编程语言 时间:
2020-05-01 20:50:27
阅读次数:
68
import java.util.Arrays;/** * 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 * 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序 ...
分类:
编程语言 时间:
2020-05-01 12:52:14
阅读次数:
61
给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2 ...
分类:
其他好文 时间:
2020-05-01 12:34:36
阅读次数:
52
//求最长相同子序列 function dp(s1,s2) { var n=s1.length,m=s2.length;//长度 var cs=''; var n1=0,n2=0;//扫描点 var chunkArr=[] //开始扫描 while (n1<n&&n2<m){ //相等 if(s1[ ...
分类:
其他好文 时间:
2020-04-30 13:33:53
阅读次数:
68
算法分析设计实践——最长公共子序列 1.问题 对于序列a和序列b,求其最长公共子序列 2.解析 通过动态规划的方式 dp[i][j] 前i个字符的x和前j个字符的y的最长公共子序列 当a[i] = b[j] 的时候 dp[i][j] = max(dp[i][j] , dp[i - 1][j - 1] ...
分类:
编程语言 时间:
2020-04-29 01:21:34
阅读次数:
71
问题: 给定序列$X,Y$,求最长公共子序列。 解析: 设$dp[i][j]$表示前$i$个$x$和前$j$个$y$的最长公共子序列。 $dp[i][j]=max(dp[i][j],dp[i-1][j],dp[i][j-1])$ 当前最长由前一个转移过来 $if(x[i]==y[j]) dp[i][ ...
分类:
编程语言 时间:
2020-04-28 23:12:50
阅读次数:
59
Description 找到一个数列(长度不超过 $10^4$),使得有且仅有 $x$ 个非空子数列中元素极差小于 $d$,或者判定不存在。 Solution 考虑如何让后加的子序列中的数不会影响到前面的,只需要加一个 $d$,就可以形成新的一组 于是我们需要将自学列拆成若干个互不相干的组,每组内取 ...
分类:
其他好文 时间:
2020-04-28 15:16:36
阅读次数:
39
最长公共子序列 longest common subsequence,LCS 说明:子序列中的字符与子字符串中的字符不同,它们不需要是连续的,例如: 字符串1:BDCABA;字符串2:ABCBDAB 最长公共子序列长度为4,最长公共子序列是:BCBA 算法求解——动态规划 最优子结构 设两个字符串分 ...
分类:
其他好文 时间:
2020-04-27 22:11:55
阅读次数:
51
"题目链接" 题目大意 给一个长度为$n$的字符串,要求将它染色然后按字典序交换排序(可以理解为冒泡),只有颜色不同的字符之间才能互相交换,问最少能用多少种颜色并且输出染色方案。 分析 只需要染一种颜色的情况 显然,像是abcdefghijklmn...这种根本不需要相互交换,所以只需要一种颜色。 ...
分类:
其他好文 时间:
2020-04-27 13:13:34
阅读次数:
52