题目链接:1012: [JSOI2008]最大数maxnumber题意
中文题,点链接看吧,就不copy了。
思路
打眼一看立刻就想到线段树,但本题的区间最值查找每次都是在查后L位,感觉用线段树有些大材小用了。
再仔细想想,发现,如果倒数第i个比倒数第i+1个数小,那么第i个数是没有用的,任意查询的最值都不会是它,因为查的是后L个嘛。
所以呢,我们我以维护一个栈,每次添加新元素时...
分类:
Web程序 时间:
2016-03-17 14:50:09
阅读次数:
208
前面学习了ArrayList的源码,数组是顺序存储结构,存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1),数组的特点是寻址容易,插入和删除困难。今天学习另外的一种常用数据结构LinkedList的实现,LinkedList使用链表作为存储结构,链表是线性存储
分类:
编程语言 时间:
2016-03-15 23:13:49
阅读次数:
290
CF:Problem 425A 区间暴力,枚举区间。交换选定区间最小值和剩余区间最大值k次。 其实等同于将剩余区间最大k个加到选定区间里,然后排序 CodeForces 363D 这题其实是二分法。需要买最多的车,判断能不能买k辆车的话,一定是钱最多的k个人,买最便宜的k辆车,然后二分查找找出最
分类:
其他好文 时间:
2016-03-13 11:25:47
阅读次数:
184
这题被放在dfs里,所以说不能盲目相信分类,正所谓自古迷宫必bfs,迷宫问题的深度一般dfs是不行的,其实这题没什么,关键是方向变换的定义,只是我以为不用做访问标记而错了好久,于是及其无聊地在那二分查找介于re与mle之间的内存大小(你可以去死了),这行为和我早上为了吃到外卖而坚持不去一条街,饿了好
分类:
其他好文 时间:
2016-03-13 06:21:41
阅读次数:
203
一、常用数组查找算法 工作原理:它又称为顺序查找,在一列给定的值中进行搜索,从一端的开始逐一检查每个元素,知道找到所需元素的过程。 例1:查找指定的数在数组中出现的位置,找到返回下标,找不到返回-1 1 import java.util.Scanner; 2 public class LinearS
分类:
编程语言 时间:
2016-03-10 23:26:51
阅读次数:
296
# -*- coding: UTF-8 -*- def search(a,m): low = 0 i = 0 top = len(a) while(low<=top): mid = (low+top)/2 mids = a[mid] if m<mids:top=mid-1;i+=1;print mi
分类:
其他好文 时间:
2016-03-09 01:13:10
阅读次数:
170
1、HashMap的数据结构(HashMap通过hashcode对其内容进行高速查找,是无序的) 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组 :数组的存储区是连续的,占用内存严重,故空间复杂度非常大。但数组的二分查找时间度小;数组的特点:寻址easy,插入和 删除困难
分类:
其他好文 时间:
2016-03-08 16:11:09
阅读次数:
167
1、二分查找(Binary Search) 二分查找又称折半查找,它是一种效率较高的查找方法。 二分查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构。不妨设有序表是递增有序的。2、二分查找的基本思想 二分查找的基本思想是:(设R[low..high]是当前的查找区间)
分类:
其他好文 时间:
2016-03-07 22:17:18
阅读次数:
222