数据结构
文章平均质量分 50
lovewangtaotao
这个作者很懒,什么都没留下…
展开
-
2016多校总结---HDU5812distance
这个题目很巧妙。其实刚开始是没有任何想法的,但是仔细分析一下套路就会发现。其实是正常的套路。 首相,这是个询问类型的题。给你定义了一个函数d( x , y ) 为从x 到 y要乘或除的素数的最小个数。但是不可以0(n^2)肯定会超时(普遍的套路) ; 但是这个题目要抓住一个特殊的点。因为这个是集合操作,包括了insert和delete, 可以在insert和delete的同时维护什么东西。这原创 2016-08-11 11:06:55 · 278 阅读 · 0 评论 -
poj3378 树状数组 + 离散化 + 高精度
其实.,我没有AC,因为...高进度不会,所以没有搞.ok,这个是我直接一次后的代码.是为了以后再做这一题用的#include #include #include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f #define mem0原创 2016-05-30 15:30:32 · 293 阅读 · 0 评论 -
线段树(2) ----- hdu4578所得的线段树的效率探究
线段树是一种神奇的数据结构,这里简单说说他的效率到底快在哪 线段树的效率是由于他的二分而来的,然而二分之后却可以通过自己维护的值和子树与母树的逻辑关系可以得到任何起点和终点的线段才是线段树的奥妙 ; 线段树的在线算法的特点在于他只存储部分数据,通过这部分数据在lgn内可以退出所需的数据 。 所以线段树一定要在update的过程中来维护获得所需数据,但是却不可以在给出一组询问后再回到节点上计算原创 2015-10-10 21:54:31 · 541 阅读 · 0 评论 -
线段树(1)----- 简单问题 hdu4553
线段树是一种灵活的数据结构,所谓的灵活是因为他的以有很多的变形,而具体的变形却还是有规律可言的 - 线段树是基于二分的,也就是可以在查找的时候优化复杂度为lgn ,而具体要考虑到的确是如何维护和通过维护什么来获得需要的结果; 1.求区间的最大值 当然可以用RMQ来求解 ; 线段树而言 : 考虑 , 对于区间的最大值,我们可以考虑,一个1~n的区间最大值a和1~n/2 与 n/2 ~原创 2015-10-10 17:17:16 · 440 阅读 · 0 评论 -
离散化 + 线段树(树状数组) + 线扫描法
最近看了几道题 目 poj1151 和 hdu5481 .虽然现在没有写出代码,但是根据这几天的总结,我说说大概的思路和解题的思想 ; 1.poj1151 题意:给你n个矩形,求矩形的面积并 ; 关键思想:由于n的范围很大,一个一个1*1的矩形元枚举是不吭能的,所以要使用所谓的 ‘离散化 ’ 离散化就是把无穷的数变化为有穷的数 ; 首先考虑到我们的最小矩形元并不是1*1,而是在出现的原创 2015-09-28 19:36:37 · 404 阅读 · 0 评论 -
单调栈的进一步理解,poj2796
对于单调栈,则是一个单调的栈,为什么可以把复杂度减小为0(n);;主要是在求以一个数为最小的区间和的时候,可以在数据处理时构建一个单调栈,已知一个单调的栈,再往下面压入一个数时,如果不满足单调性,则表明暂栈顶元素最小的区间已经结束了,那么就pop出来,如果栈顶第二个元素也不满足单调性,那么也压出,但是由于栈顶第一个元素肯定在第二个的最小区间内(应为大于倒数第二个)所以要建立一个tmp,储存这个元素原创 2015-03-11 21:20:28 · 611 阅读 · 0 评论