动态规划LSC——最长公共子序列 设A="a0,a1,…,am",B="b0,b1,…,bn",且Z="z0,z1,…,zk"为它们的最长公共子序列。不难证明有以下性质: 如果am=bn,则zk=am=bn,且"z0,z1,…,z(k-1)"是"a0,a1,…,a(m-1)"和"b0,b1,…,b(... ...
分类:
其他好文 时间:
2020-07-16 21:10:41
阅读次数:
46
题意:给定一个长度为n的序列,可以修改任何一个字符,求修改后最长的单调严格上升子序列(必须是连续的)。 分析:\((1 <= n < 10^5)\),数据范围很大,不能使用$o(n^2)$的算法。所以我们可以从线性角度考虑,一种常见的套路是枚举修改点,然后求最大值。我们只需要分别求出两端的情况即可, ...
分类:
其他好文 时间:
2020-07-15 23:25:08
阅读次数:
90
题:https://ac.nowcoder.com/acm/contest/5667/G 题意:给定n个数的数组A,m个数的数组B,问在A中有多少个子数组满足Si>=Bi 分析:我们可以考虑记录合法子数组以数组A中的一个位置代表一个合法子数组(因为长度固定为m); 设bitset 的ans和tmp, ...
分类:
其他好文 时间:
2020-07-14 16:42:37
阅读次数:
289
D. Odd-Even Subsequence 题意 给出一个数组 a ,让你选择一个 a 的子序列,使得 \(min(max(a_1,a_3,a_5...),max(a_2,a_4,a_6...))\) 最小。 即奇数位置的最大值和偶数位置的最大值 的最小值最小。 思路 其实做这道题我还是很懵逼的 ...
分类:
其他好文 时间:
2020-07-14 16:37:29
阅读次数:
54
Given an unsorted array of integers, find the length of longest continuous increasing subsequence (subarray). 找最长连续上升子序列 class Solution(object): def f ...
分类:
其他好文 时间:
2020-07-14 00:26:48
阅读次数:
59
排序(重新排列表中的元素,使表中的元素满足关键字递增或递减): 稳定性:设表中有两个元素a,b,其对应关键字x,y,且a在b前面,若排序后,a仍在b前面,则我们说该排序算法是稳定的,否则不稳定 内部排序:值在排序期间元素全部放在内存的排序。 插入排序:每次将一个未排列的元素插入到一个已经排好的子序列 ...
分类:
其他好文 时间:
2020-07-12 22:27:05
阅读次数:
73
一、本章小结 1.根据时间复杂度的不同,常见的算法可以分为3大类。 1).O(n²) 的排序算法 冒泡排序 简单选择排序 插入排序:直接插入,折半插入 2).O(n log n) 的排序算法 希尔排序 归并排序 快速排序 堆排序 2.根据是否受到待排序对象初始排列影响,可分为 1)受到待排序对象的初 ...
分类:
其他好文 时间:
2020-07-12 14:30:19
阅读次数:
62
判断子序列 题目描述 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符 ...
分类:
其他好文 时间:
2020-07-12 14:02:24
阅读次数:
48
归并排序 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。 作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法: 自 ...
分类:
编程语言 时间:
2020-07-12 12:09:18
阅读次数:
65
解法一: f[i][j]表示数列A的前i个和数列B的前j个且以B[i]结尾的最长公共上升子序列 f[i][j]=f[i?1][j] (a[i]≠b[j]) f[i][j]=max(f[i?1][j],f[i?1][t]+1) (a[i]=b[j] 且 1 <= t < j) #include <io ...
分类:
其他好文 时间:
2020-07-11 16:50:15
阅读次数:
45