描述 一个序列中的元素a1,a2,...,an,若满足a1<=a2<=...<=an,则称该序列为非递减序列。 现给定一个序列,问该序列最少可以分割为多少个连续的非递减子序列。 比如: 1 2 5 3 4 可以分割为两个非递减子序列1 2 5和3 4。 而: 5 4 3 2 1 则只能分割为5个非递 ...
分类:
其他好文 时间:
2018-09-08 00:41:47
阅读次数:
194
1 package DP; 2 //求子序列和最大值 3 public class MinNum { 4 public static void main(String[] args){ 5 int[] num = {-6, 2, 4, -7, 5, 3, 2, -1, 6, -9, 10, -2};... ...
分类:
编程语言 时间:
2018-09-06 19:49:22
阅读次数:
245
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。 示例 1: 输入: [1,3,2,2,5,2,3,7] 输出: 5 原因: 最长的和谐数组是:[3,2,2,2,3]. 说明: 输入的数组长度最大不超过20 ...
分类:
其他好文 时间:
2018-08-31 00:30:49
阅读次数:
135
题意是要在一段数列中求 m 段互不重合的子数列的最大和。 动态规划,用数组 num[ ] 存储所给数列,建二维数组 dp[ ][ ] , dp[ i ][ j ] 表示当选择了第 j 个数字( num [ j ] )时,前 j 个数字被分成 i 组的所得最大和。 那么这个最大和等于 max{ ( 前 ...
分类:
其他好文 时间:
2018-08-27 14:18:01
阅读次数:
181
一、题目描述(题目链接) 给定一个序列,按指定的顺序逐一删掉,求连续子序列和的最大值。例如序列1 3 2 5,按3 4 1 2的顺序删除,即依次删除第3个、第4个、第1个、第2个,答案为5 4 3 0。 二、问题分析 我们知道从并查集中删除元素很难,而合并非常简单。所以我们可以反过来思考,正向删除元 ...
分类:
其他好文 时间:
2018-08-16 01:04:41
阅读次数:
123
A题:给你一个序列,长度为n。问是否存在一个连续的子序列和是m的倍数 鸽巢原理,求出序列的前缀和数组,若pre[i]%m==pre[j]%m,则(pre[j]-pre[i])%m==0; B题:给出5个整数a,b,c,d,k。你要在[a,b]中找一个x,在[c,d]中找一个y,使得gcd(x,y)= ...
分类:
其他好文 时间:
2018-07-25 20:03:43
阅读次数:
173
Given a sequence of K integers { N~1~, N~2~, ..., N~K~ }. A continuous subsequence is defined to be { N~i~, N~i+1~, ..., N~j~ } where 1 <= i <= j <= K ...
分类:
其他好文 时间:
2018-07-19 19:15:23
阅读次数:
202
一、$DP$的意义以及线性动规简介 动态规划自古以来是dalao凌虐萌新的分水岭,但有些OIer认为并没有这么重要——会打暴力,大不了记忆化。但是其实,动态规划学得好不好,可以彰显出一个$OIer$的基本素养—— 能否富有逻辑地思考一些问题 ,以及更重要的—— 能否将数学、算筹学(决策学)、数据结构 ...
分类:
其他好文 时间:
2018-07-15 23:27:21
阅读次数:
223
只要在常数时间内可以将问题的大小削减为其一部分($ \frac{1}{2} $), 那么该算法就是($O(logN)$) 1. 最大子序列和问题($O(NlogN)$) ...
分类:
编程语言 时间:
2018-07-01 13:37:34
阅读次数:
121
题目大意: 给定一个长度为N的序列,请你求出它最大长度不超过M的最大子序列的和(其中 N,M<=3*10^5) 分析: 一般对于这样的题目,我们最现实想到的就是前缀和,通过枚举序列可以得到答案,但这样的时间复杂度显然是不乐观的(TLE) 所以我们可以通过队列来优化 (这个算法我们称之为单调队列算法) ...
分类:
编程语言 时间:
2018-06-21 22:25:54
阅读次数:
479