题目描述 为了避免餐厅过分拥挤,FJ要求奶牛们分 批就餐。每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想,所有第 批就餐的奶牛排在队尾,队伍的前端由设定为第 批就餐的奶牛占据,中间的位置就归第 批就餐的奶牛了。 由于奶牛们不理解FJ的安排,晚饭前的排队成了一个大麻烦。 第 头奶牛有一张标明她用 ...
分类:
其他好文 时间:
2020-04-27 09:42:14
阅读次数:
73
1.构造回文 题目: 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。 思路:利用回文的性质,利用动态规划求原字符串和其反串的最大公共子序列。 2.筛选法求素数 算法举例 单源最短路径中的Dijkstra算法 贪婪算法 最小生 ...
分类:
其他好文 时间:
2020-04-26 21:12:30
阅读次数:
58
POJ2955 Brackets 题目链接:https://vjudge.net/problem/POJ-2955 题意:求最长的合法括号子序列长度 思路: 基础的区间DP问题。用f[i][j]表示第i到第j区间内的最长合法括号子序列长度。 首先要进行预处理: 如果当前区间 [l,r] 的左端点和右 ...
分类:
其他好文 时间:
2020-04-26 21:05:13
阅读次数:
51
题目描述: 方法一:动态规划 O(n) class Solution: def constrainedSubsetSum(self, nums, k: int): dp = [0]*len(nums) dp[0] = nums[0] arr = [(nums[0],0)] for i in rang ...
分类:
其他好文 时间:
2020-04-26 18:39:08
阅读次数:
57
插入排序 1.直接插入排序 默认 L(1) 有序,将 L(2) ~ L(n)依次插入到前面已经排好序的子序列中。 空间效率:O(1) ,就地排序 时间效率:比较和移动。最好情况下,有序,只需要比较不需要移动,只要 O(n)。 平均是 O (n2) 稳定性:稳定。 适用性:均可。 2.折半插入排序 主 ...
分类:
编程语言 时间:
2020-04-26 18:37:56
阅读次数:
60
题意:给你一个数组a,询问m次,每次返回长度为k的和最大的子序列(要求字典序最小)的pos位置上的数字. 题解:和最大的子序列很简单,排个序就行,但是题目要求字典序最小,那我们在刚开始的时候先记录每个数的位置再排序,然后选出k个最大的数后在对位置从小到大排个序就行了(这题有个坑,第一次排序的时候记得 ...
分类:
其他好文 时间:
2020-04-26 12:31:14
阅读次数:
66
https://www.cnblogs.com/Hangingter/p/9589427.html https://www.jianshu.com/p/2b2f1f79984e # -*- coding: utf-8 -*- # @Time : 2020/4/25 15:27 # @File : q ...
分类:
编程语言 时间:
2020-04-25 17:37:04
阅读次数:
80
题目描述 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O ...
分类:
其他好文 时间:
2020-04-25 17:11:17
阅读次数:
47
输入输出样例 输入 #1复制 4 3 6 2 5 输出 #1复制 2 2 3 思路 Task1:数据范围很小,暴力出LIS长度就可以了 Task2:显然是个带限制条件的最小路径覆盖问题 拆点建图,以该点是否为LIS的起终点为依据判断是否对ST连边 对所有点肯定要满足该点出点要连下一个点的入点 Tas ...
分类:
其他好文 时间:
2020-04-25 13:03:40
阅读次数:
64
VII. "万径人踪灭" ~~跑题了跑题了~~ 我们可以知道, $\text{答案=位置对称且字符对称的子序列的数量 回文子串数}$ 关于回文子串数,我们可以使用Manacher算法在$O(n)$时间内实现。如果不会的话,可以参加鄙人的 "拙作" ,这里不再赘述。 那么如何求出 位置对称且字符对称的 ...
分类:
其他好文 时间:
2020-04-25 12:18:09
阅读次数:
60