此题应用线段树的方法非常巧妙。没做过真的难想得出是这么想的。
是一个逆向思维的运用。
其实一看到这道题目我就想到要运用逆向思维的了,但是就是没那么容易想通的。
思路:
1 要从后面往前更新线段树
2 线段树记录的是当前区间还剩下多少个记录空间
3 因为后面的插入会使得前面的插入往后退,那么前面插入的下标如果大于前面可以插入的空间,就需要往后退了。
好难理解的操作。仔细观察一下下面up...
分类:
其他好文 时间:
2014-06-19 12:54:26
阅读次数:
248
线段树记录当前区间是哪一个长方形在覆盖。
然后根据每一条线更新线段树。
如果是左边的边,那么把区间更新成当前长方形。
否则,把区间更新成当前长方形的前驱。
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(linker, "/STACK:1024000000,102...
分类:
其他好文 时间:
2014-06-16 11:26:00
阅读次数:
161
上次的湘潭赛的C题,用线段树敲了下还是WA,不知道为何,我已经注意了处理相同数据,然后他们当时用的RMQ。所以学了下RMQ,感觉算法思想是一样的,RMQ用了DP或者是递推,由单个数到2^k往上推,虽然有部分重叠的,也没关系,因为RMQ是求区间最值嘛然后这道题目,要把出现次数化为最值,构造一个新的数组...
分类:
其他好文 时间:
2014-06-16 06:21:13
阅读次数:
248
Dillon|2014-02-12 10:00|5899次浏览|Unity(280)03d游戏中当2个片元距离近裁减平面 w 落在同一个区间的时候,他们的深度是相等的. 最终你所看到的结果,就是下面的这种样子:注意到蓝色线框里面.要解决这个问题, 你只要google 或者去 beyond3d,等论坛...
分类:
其他好文 时间:
2014-06-15 22:41:35
阅读次数:
461
快速排序:
该方法的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
快速排序进一步挖掘就是挖坑和分治,这种方法比较实用简单:
对挖坑填数进行总结
1.i =L; j = R; 将基准数挖出形成第一个坑a[i]。
2.j--由后向前找比它小的数,找到...
分类:
编程语言 时间:
2014-06-15 18:54:10
阅读次数:
324
一、线段树线段树既是线段也是树,并且是一棵二叉树,每个结点是一条线段,每条线段的左右儿子线段分别是该线段的左半和右半区间,递归定义之后就是一棵线段树。例题:给定N条线段,{[2,
5], [4, 6], [0, 7]}, M个点{2, 4, 7},判断每个点分别在几条线段出现过?1、构建线段树2、处...
分类:
其他好文 时间:
2014-06-13 18:43:01
阅读次数:
262
是什么一种scheme,用表来做信息存取,代替逻辑语句(if/else)为什么简化逻辑语句,避免大量嵌套的 if/else 或者
switch/case怎么用三种访问表的方式直接访问:将源数据作为key索引访问:构建KV表阶梯访问:分为连续区间,遍历或者二分查找例子// get the
full n...
分类:
其他好文 时间:
2014-06-12 11:54:23
阅读次数:
255
Reverse Linked List IIReverse a linked list from
positionmton. Do it in-place and in one-pass.For example:Given
1->2->3->4->5->NULL, m= 2 andn= 4,retu...
分类:
其他好文 时间:
2014-06-12 07:03:54
阅读次数:
308