题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1835题意:有N个村庄坐落在一条直线上,第 i(i>1)个村庄距离第1个村庄的距离为Di。需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci。如果在距离第i个村 庄不超...
分类:
其他好文 时间:
2014-06-23 07:26:17
阅读次数:
252
使用线段树预处理,可以使得查询RMQ时间效率在O(lgn)。
线段树是记录某范围内的最小值。
标准的线段树应用。
Geeks上只有两道线段树的题目了,而且没有讲到pushUp和pushDown操作,只是线段树的入门了。
参考:http://www.geeksforgeeks.org/segment-tree-set-1-range-minimum-query/
我修改了一下他的程序,使用...
分类:
其他好文 时间:
2014-06-22 18:08:05
阅读次数:
217
题目大意:
给出的东西要求建立一个堆,使得后面的数字满足堆的性质,而且字符串满足搜索序
思路分析:
用线段树的最大询问建树。在建树之前先排序,然后用中序遍历递归输出。
注意输入的时候的技巧。。。
#include
#include
#include
#include
#define lson num<<1,s,mid
#define rson num<<1|1,m...
分类:
其他好文 时间:
2014-06-21 21:38:34
阅读次数:
205
模拟试题C 一、单项选择题(2′*14 =28′) 1.双线性法向插值法(Phong Shading)的优点是( ) A)法向计算精确 B)高光域准确 C)对光源和视点没有限制 D)速度较快 2.用编码裁剪法裁剪二维线段时,判断下列直线段采用哪种处理方法。假设直线段两个端点M、N的编码为1000和1...
分类:
其他好文 时间:
2014-06-19 06:17:25
阅读次数:
947
一般来说,树状数组可以实现的东西线段树均可胜任,实际应用中也是如此。但是在二维中,线段树的操作变得太过复杂,更新子矩阵时第一维的lazy标记更是麻烦到不行。
但是树状数组在某些询问中又无法胜任,如最值等不符合区间减法的询问。此时就需要根据线段树与树状数组的优缺点来选择了。
做一下基本操作的对比,如下图。
因为线段树为自上向下更新,从而可以使用lazy标记使得矩阵的更新变的高校起来,几个不...
分类:
其他好文 时间:
2014-06-18 06:11:05
阅读次数:
326
模板到不行。。连更新都没有。。。存个模板。
理解留到小结的时候再写。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(linker, "/STACK:1024000000");
#define EPS (1e-8)
#define...
分类:
其他好文 时间:
2014-06-17 22:29:20
阅读次数:
304
很经典的题目,而且是标准的线段树增加lazy标志的入门题目。
做了好久线段树,果然是practice makes perfect, 这次很畅快,打完一次性AC了。
标志的线段树函数。
主要是:
更新的时候只更新到需要的节点,然后最后的时候一次性把所以节点都更新完毕。
这也是线段树常用的技术。
#include
const int SIZE = 100005;
struct Node...
分类:
其他好文 时间:
2014-06-16 20:38:39
阅读次数:
182
不是BST,那么搜索两节点的LCA就复杂点了,因为节点是无序的。
下面是两种方法,都写进一个类里面了。
当然需要重复搜索的时候,可以使用线段树及多种方法加速搜索。
#include
#include
using namespace std;
class LCANormalTree
{
struct Node
{
int key;
Node *left, *right;...
分类:
其他好文 时间:
2014-06-16 20:20:04
阅读次数:
234
没想到线段树的基本用法这么长时间没写了还没有忘,1A的感觉还是很爽的。
题目大意:
中文题,点此查看题目。
解题思路:
线段树的区间更新与查询。
lazy标记的使用。
当需要返回区间多个值时可以使用引用参数。
下面是代码:
#include
#include
#include
#include
#include
#include
using n...
分类:
其他好文 时间:
2014-06-16 19:40:08
阅读次数:
145