本人巨懒就用了STL lower_bound会找出序列中第一个大于等于x的数 upper_bound会找出序列中第一个大于x的数 对于N个数求最长单调不上升子序列,使用一个数组f[]存下 然后使用一个栈dq,存储不上升序列 把f中的每个元素挨个加到d里面 如果a[i] > d[len],在dq中找到 ...
分类:
其他好文 时间:
2020-02-04 09:11:39
阅读次数:
101
快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为较小和较大的2个子序列,然后递归地排序两个子序列。 步骤为: 挑选基准值:从数列中挑出一个元素,称为"基准"(pivot); 分割:重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准 ...
分类:
编程语言 时间:
2020-01-31 14:02:49
阅读次数:
71
【最长子序列和】 问题定义:对于给定序列 a1,a2,a3……an 寻找它的某个连续子段,使得其和最大。 模板: 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn = ...
分类:
其他好文 时间:
2020-01-29 17:40:58
阅读次数:
91
总时间限制: 1000ms 内存限制: 65536kB描述 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ...,aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 ...
分类:
其他好文 时间:
2020-01-23 18:19:12
阅读次数:
96
题意:给你一个序列,他的序列和是否大于他的任何他的子序列(连续的子序列)的和。 题目链接:https://vjudge.net/problem/CodeForces-1285B 思路:求他的最大连续子序列和。那如何求最大子序列和呢?用动态规划求即可。但是要注意的是,子系列不能和原序列一样。 用dp[ ...
分类:
其他好文 时间:
2020-01-18 10:55:18
阅读次数:
84
题目 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$. The ...
分类:
其他好文 时间:
2020-01-16 17:22:49
阅读次数:
63
分治法 分治策略: <1>分解:将原序列 a[s...t] 分解成两个子序列 a[s...i-1] 和 a[i+1...t]。其中 i = (s+t)/2; <2>求解子问题:若子序列的长度是0或1,则是有序的,直接返回;否则递归地求解各个子问题。 <3>合并:由于整个子序列存放在数组 a 中,排序 ...
分类:
编程语言 时间:
2020-01-04 18:39:39
阅读次数:
117
方法一 //求解最大连续子序列和问题 #include<stdio.h> long maxSubSum(int a[],int n){ int i,j,k; long maxSum=a[0],thisSum; for(i=0;i<n;i++){ for(j=i;j<n;j++){ thisSum=0 ...
分类:
其他好文 时间:
2020-01-03 23:32:36
阅读次数:
192
给定一个序列a[i],取出一段连续的子序列,使得子序列的和的绝对值最小。 N<=10^6,a[i]<=10^9。 sol:先求出前缀和,我们考虑到,任何一个子序列和的绝对值,都可以表示为|s[x]-s[y]|(x大于y),那么任何有一个|s[x]-s[y]|(x大于y),都对应一个子序列和的绝对值。 ...
分类:
其他好文 时间:
2019-12-30 17:41:27
阅读次数:
63
最大子序列和 题目大意: 给一个数组,求出最大子序列和(连续数的和最大) 例子 输入: [ 2,1, 3,4, 1,2,1, 5,4], 输出: 6 解释: 连续子数组 [4, 1,2,1] 的和最大,为 6。 1、动态规划 如果按动态规划的做法,我们已知的条件: 1. 前 n 1 个数最大的子序列 ...
分类:
其他好文 时间:
2019-12-04 13:14:24
阅读次数:
86