题目:Codeforces 487B. Strip(#278Div.1 B题)
描述:将一个长度为n的数列划分成m个部分,要求每个部分含有的个数>=L,且每个部分最大值-最小值<=S,求满足上述两个条件情况下m的最小值。即划分区间个数最小
方法:线段树求区间最值,在线段树上进行动态规划,线段树懒操作
复杂度:O(nlogn),n为数列元素个数
此题所需方法巧妙,很有助于算法提高,有助于提高线段树基本写法...
分类:
其他好文 时间:
2014-11-23 09:18:55
阅读次数:
280
最近项目中遇到了,处理数组数据问题: var newStrs=[1,2,3,4]; alert(Math.min.apply(null,newStrs)); //最小值 alert(Math.max.apply(null,newStrs)); //最大值
分类:
编程语言 时间:
2014-11-21 15:46:57
阅读次数:
153
题目大意:基本是一颗平衡树的基本操作。
思路:本来是Treap的题,但是为了体现出vEB树的独特用处,所以就比较卡时间。权值线段树的常数会小一点,但是还是会T,所以就只能用zkw来水过了。
只需要在求最大值最小值里面好好考虑一下,剩下就没什么好说的了。
CODE:
#include
#include
#include
#include
#define MAX 1...
分类:
其他好文 时间:
2014-11-21 14:29:37
阅读次数:
256
题意:
给定n个点的带边权树Q个询问。
下面n-1行给出树
下面Q行每行一个数字表示询问。
首先求出dp[N] :dp[i]表示i点距离树上最远点的距离
询问u, 表示求出 dp 数组中最长的连续序列使得序列中最大值-最小值
思路:
求dp数组就是求个树的直径然后dfs一下。
对于每个询问,可以用一个单调队列维护一下。O(n)的回答。
#include
#includ...
分类:
其他好文 时间:
2014-11-09 15:18:46
阅读次数:
271
摘要: 本章介绍了二叉查找树的概念及操作。主要内容包括二叉查找树的性质,如何在二叉查找树中查找最大值、最小值和给定的值,如何找出某一个元素的前驱和后继,如何在二叉查找树中进行插入和删除操作。在二叉查找树上执行这些基本操作的时间与树的高度成正比,一棵随机构造的二叉查找树的期望高度为O(lgn),从而....
分类:
其他好文 时间:
2014-11-04 22:32:57
阅读次数:
353
这道题目的意思是,有一个队列,它里面会存储一些数值,现在,要求你需要在 O(1) 的时间内返回这个队列中最大的那个值。 这道题目的和栈中最大值最小值问题是一样的解法,都是需要一个辅助的东西,对于这道题目,我需要的是一个辅助队列。 由于是需要找到最大值,我的做法是,如果辅助队列为空,那么,当数据入队列的时候就需要同时放入队列和辅助队列中;如果辅助队列不为空,但是入队列的那个元素比...
分类:
其他好文 时间:
2014-10-20 15:09:13
阅读次数:
151
实现求数组的最大值最小值,蛮力法要容易的多。本着重在体验分治法的思想的原则: 1 int main(void) 2 { 3 void Maxmin(int a[],int low,int high,int maxmin[2]); 4 int a[10],maxmin[2]; 5 6...
分类:
编程语言 时间:
2014-10-18 19:38:06
阅读次数:
185
//经典1
//随机产生20个[10,50]的正整数存到数组中,并求出数组中的所有元素最大值,最小值,平均值以及个元素之和,及第二大值
inta[20]={0};
printf("随机产生的元素:\n");
for(inti=0;i<20;i++){
a[i]=arc4random()%(50-10+1)+10;
printf("%d",a[i]);
}
printf("\n");
//求所..
分类:
编程语言 时间:
2014-10-14 12:25:28
阅读次数:
236
Array.prototype.max = function(){ //最大值return Math.max.apply({},this)}Array.prototype.min = function(){ //最小值return Math.min.apply({},this)}var myMax ...
分类:
其他好文 时间:
2014-10-09 15:45:23
阅读次数:
186
题目:最大字段积。
分析:dp,最大字段和类似物。求解过程同最大字段和。
这里注意,设置两个状态:以本元素结束时,最大正值和最小的负值。
更新时,如果data[i]为正,则对应跟新,如果data[i]为负,则交叉跟新,
data[i]为0时,当前最大值,最小值置零。
本体数据较小,可以直接用O...
分类:
其他好文 时间:
2014-10-07 14:55:53
阅读次数:
219