数据结构
文章平均质量分 59
EaShion1994
这个作者很懒,什么都没留下…
展开
-
POJ_3468 A Simple Problem with Integers(线段树+lazy标记)
题目请点我 题解: 这是一道简单的线段树外加lazy标记,与之前一道HDU_1698 Just a Hook的区别在于这题区间内的数值不完全相同,lazy数组和segTree数组将不能共用。 这道题让我对lazy数组又进行了思考,lazy数组作为一个辅助数组,它的作用就是用来统一描述某一个节点发散出去的子树的性质。借用一个形象的比喻,是爸爸懒得去更新所有的孩子而做的一个标记,从该爸爸节点发散出原创 2015-08-24 17:32:42 · 524 阅读 · 0 评论 -
HDU_1394 Minimum Inversion Number(线段树)
题目请点我 题解: 这道题不容易看出是线段树,但是我们可以先来分析题意。 给出一个数列,注意是a permutation of the n integers from 0 to n-1,其实是其他的算法也是一样的。要找到逆序数最起码是O(N^2)的时间复杂度,之后还要求变换后的。那么对于每一个数来说我们都要进行一次查询,怎样优化查询的时间复杂度呢?对了,线段树!(当然树状数组貌似也可以求解,之原创 2015-08-23 10:50:28 · 597 阅读 · 0 评论 -
HDU_1698 Just a Hook(线段树+lazy标记)
题目请点我 题解: 接触到的第一到区间更新,需要用到lazy标记,典型的区间着色问题。 lazy标记详情请参考博客:http://ju.outofmemory.cn/entry/99351 简单讲就是被lazy标记的非叶子节点所包含的所有叶子节点具有相同的性质,当更新或查询到该区间时,不再向下递归,仅对当前节点的lazy标记进行修改。 update : 如果当前区间刚好完全在目的区原创 2015-08-23 21:54:40 · 820 阅读 · 0 评论 -
HDU_2795 Billboard(线段树)
题目请点我 题解: 当使用普通数据结构不能满足要求是,就要想到其他的数据结构来维护。这道题用线段树维护查找,可以满足O(NlogN)的时间复杂度。 注意这句话:When someone puts a new announcement on the billboard, she would always choose the topmost possible position for the a原创 2015-08-23 19:43:25 · 500 阅读 · 0 评论 -
POJ_2528 Mayor's poster(线段树+离散化)
题目请点我 题解: 这道题与之前的题目相比重点在于一个映射的预处理,题目所给的区间达到10000000,而最多只有10000个点,如果直接建树的话太过于空旷。把这些区间的左右节点一一对应,最多有4×10000个点,远小于之前的10000000,而且区间之间的对应关系也不会改变。 举个例子: 区间:[2,6],[4,8],[6,10] 我们进行下面对应: 2 4 6 8原创 2015-08-25 21:28:17 · 691 阅读 · 0 评论 -
Poj_2262 Goldbach's Conjecture(筛法求素数)
题意:哥德巴赫猜想,一个偶数一定能化为两个质数的乘积。思路:练习了一下筛法求素数,不用写不成立的情况,因为目前还没有找出反例。代码实现:#include #include #include #include #include using namespace std;const int MAX = 1000005;int N;int cnt;bool fl原创 2016-12-12 21:41:13 · 506 阅读 · 0 评论 -
Hdu_2018 母牛的故事(递推)
题意:如题,母牛四天长大,成熟的母牛每天生一胎小牛,求第N天的牛的数目。思路:最开始的时候想不出来递推的关系,因为每天都有小牛生出,每天都有小牛长大。但是如果把问题拆开会很好理解,第N天牛的数目a[n]等于昨天牛的数目+今天新生出牛的数目,关键在于求出今天能生出多少小牛。因为牛四天成熟,前推到n-3,三天前的所有牛到了今天都会变成成熟的状态,所以今天新生出牛的数目就等于三天前牛的总数。原创 2016-12-13 15:09:06 · 523 阅读 · 0 评论 -
LeetCode_414 Third Maximum Number(easy)
setpriority_queue原创 2016-12-20 09:13:54 · 349 阅读 · 0 评论