数据结构基础
文章平均质量分 77
帐下幕僚
我只是一个普普通通的大学学生,我来到这里是想获得我在学校所不能得到的知识。
展开
-
uva442 Matrix chain multiplication(数据结构)
看错题意,以为是给出如ABCDE然后求出最少的策略使乘积次数最少,直到看了别人的代码才回过神来。 其实这道题就和括号匹配那道题差不多,用栈解决。 由于不会用stl,就直接模拟了。(本来说好要学的,结果考试月到来,加上自己懒,已被同学甩得远远的。 人一我百,人十我万。我会坚持下去的,跪着也要走下去)#include <stdio.h>#include <iostream>#include <原创 2016-06-28 15:27:46 · 324 阅读 · 0 评论 -
hdu2430Beans(单调队列)
看好几篇题解都不知道怎么做!先抄一遍代码再说,好像发现了点问题,构造了一个多小时的数据,再想,再想,懂啦!!!———————————————————————-题意: a[1], a[2], …, a[n] 取连续的一段(至少取一个),使得 (a[i+1] + a[i+2] + … + a[j]) % p <= k, 并且 (a[i+1] + a[i+2] + … + a[j])最大。 先原创 2017-02-27 23:45:51 · 475 阅读 · 1 评论 -
[CodeForces-325D] [Problem E]Reclamation
思路: 判断海的一个地方是否能填就相当于判断填了之后上下两块陆地能否四连通的连起来,也就相当于所有填成的海地(包括当前判断是否能填的这块)是否能八连通地围绕这圆柱体围成一个圈。 本来是 r * c。 补成 r * 2c 。 填每块海地时,要填 (ri,ci)和 (ri,ci+c)。如果所有填成的海地(包括当前判断是否能填的这块)是否能八连通地围绕这圆柱体围成一个圈,则 (ri,ci)和(ri原创 2016-12-31 16:36:04 · 375 阅读 · 0 评论 -
hihocoder1391Countries(2016北京网络赛)
对于每一个导弹,预处理出A需要的防御区间范围(对于从A发出的导弹,如果到达B的时间没有没有在 x , x+TB内,则这颗导弹一定不会打到A,所以既可以去掉。)。当且仅当 导弹i的防御区间范围含于 A的防御有效区间(未知) 内时,导弹i不会打到A.然后问题就成了,选取某个长度为 TA 的连续区间K(即A的有效防御区间),使得K包含的那些导弹的防御区间对应的伤害值最大。 做法: 预处理出来所有导弹的防原创 2016-12-23 23:28:23 · 309 阅读 · 0 评论 -
CodeForces703D Mishka and Interesting sum(树状数组)
先补点知识: 异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。 简单理解就是不进位加法,如1+1=0,,0+0=0,1+0=1。 性质 1、交换律 2、结合律(即(a^b)^c == a^(b^c)) 3、对于任何数x,都有x原创 2016-08-15 11:39:20 · 348 阅读 · 0 评论 -
线段树进阶学习(例题)--树状数组学习+离散化+成端更新+区间合并+扫描线
树状数组一、树状数组简介 树状数组(Binary Indexed Trees,简称BIT)是一种特殊的数据结构,这种数据结构的时空复杂度和线段树相似,但是它的系数要小得多。它可以方便地查询出一段区间中的数字之和。其查询和修改的时间复杂度均为O(lbN),并且是一个在线的数据结构,可以随时修改并查询。我接下来用一道题目来介绍树状数组的几个基本操作。 【引例】 假设有一列数{Ai}(1<=i<原创 2016-07-26 17:39:41 · 2211 阅读 · 0 评论 -
poj1182(食物链)----带权并查集
这道题,刚开始开了3个并查集,各种关系把我搞得头晕,已提交就是wa,怎么也找不出错误,上网查题解发现是并查集姿势不对!!! 只需开一个并查集,只要能确定关系就扔进并查集里,其中每个元素与老大哥的关系无非三种:同类,被吃,吃人,分别用0,1,2来表示。 那么每来一次判断,先判断两个是否有关系,没关系就肯定是真话,join; 否则就得判断是否说谎; d==1且ta与tb是同类,没说谎 d==2原创 2016-07-23 11:19:08 · 359 阅读 · 0 评论 -
poj1988cube stacking(并查集)
题意:有最多30000个编号为1~30000的箱子,将每个箱子当做一个栈,对这些箱子进行p次操作,每次操作分别为以下两种之一: 1>输入 M x y:表示将编号为x的箱子所在的栈放在编号为y的箱子所在栈的栈顶. 2>输入 C x:计算编号为x的所表示的栈中在x号箱子下面的箱子数目.这道我想了两天都没想出来,刚接触并查集,完全没想到(弱爆了)在find中原创 2016-07-22 09:52:17 · 323 阅读 · 0 评论 -
hdu1811Rank of Tetris(并查集+拓扑排序)
题意很好了解吧,想了很久,总是写一半又把自己否定,写了三个小时才A,药丸。正确思路:现将a==b的合并到并查集,这样就相当于只有<,>这两种情况。 没用队列做,前两次tle,其实主要是忘了break了,造成不必要的循环。用队列大概100ms以内,我750ms左右。#include <iostream>#include <stdio.h>#include <algorithm>#include原创 2016-08-01 19:44:17 · 357 阅读 · 0 评论 -
LCA三种算法学习(离线算法tarjan+在线算法转rmq+在线倍增)例题poj1330、1470;hdu4547、2874
LCA 问题,即Least Common Ancestors(最近公共祖先)的意思是:给定一有根树,求其两个节点最近的公共祖先;节点的祖先即从节点至根的路径上的节点的集合。lca离线算法离线算法,就是要将所有询问先存起来,一起处理,然后再一起输出,与之相对应的是在线算法。在线算法,每给一个询问便可以立即求出答案。Tarjan算法利用并查集优越的时空复杂度,我们可以实现LCA问题的O(n+Q)算法,这原创 2016-07-24 17:14:36 · 1760 阅读 · 0 评论 -
Sparse Table算法+poj3264(Balanced line up)题解----倍增思想
题意就是求一段区间的最大值和最小值之差(RMQ问题)。由于查询量大,考虑使用st表(空间复杂度(O(nlogn)),初始化复杂度(O(nlogn)),查询复杂度(O(1))!!!)Sparse Table算法,简称ST算法,可以用来求解RMQ(区间最值查询)问题。 RMQ问题的形式一般是:存在一个大数组,要求对于给定的起点和终点,迅速回答出这段区间的最大值或最小值。 最朴素的方式是扫描起点到终点原创 2016-07-19 10:55:18 · 402 阅读 · 0 评论 -
poj2082(Terrible Sets单调栈入门题)
题意就是求最大连续矩形的面积。 这道题是poj2559的内涵加强版。 对于一个新的元素 (1)如果此时栈为空或者栈顶元素比新元素小,则该元素入栈; (2)如果栈顶元素与新元素相等,则跳过该元素; (3)如果栈顶元素比新元素大,那么此时需要更新栈顶元素并更新面积,一直到栈顶元素小于该元素为止。#include <iostream>#include <stdio.h>#include <s原创 2016-07-18 17:21:21 · 376 阅读 · 0 评论 -
Codefores 689D. Friends and Subsequences(二分+st)
题意:求max(l,r)与min(l,r)相等的对数。 用st表保存max和min的信息。 但是这样子如果枚举左端点再枚举右端点,n2绝对t了。 我刚开始写的是二分区间(递归写的),wa了,找不出哪里错了,不过比起下面这种又不好写又不好查代码。所以要利用区间性质进行二分, 利用序列a的最大值单调非递减,序列b的最小值单调非递增,二分两次。 第一次求出最大值与最小值相等时j的最小值p,第二次原创 2016-07-23 16:43:02 · 316 阅读 · 0 评论 -
hdu1829题解(A BUG'S LIFE)简单并查集
题意应该不难理解,Professor Hopper的猜想是任何bug都只会和异性interaction,如果不能确定猜想是否错误,输出No suspicious bugs found!; 如果猜想一定错误,输出Suspicious bugs found! 再解释一下,如果出现两只bug interaction,说明他们是异性,那么出现冲突(出现同性和同性interaction)的话猜想就一定错误原创 2016-07-22 21:45:43 · 389 阅读 · 0 评论 -
hdu5571Triple(二维树状数组)
题意: 有二元组集{(a,b)}和三元组集{(c,d,e)}。当 (a,b)和(c,d,e) 满足 b==e 时,(a,c,d)组成新的三元组集 C {(a,b,c)}。 计算三元组集 C 中 满足 不存在除与本身相等外满足(u>=a,v>=b,w>=c)的三元组(u,v,w) 的三元组(a,b,c)。 思路: 自己写的时候完全没有思路啊~ 参考了http://async.icpc-c原创 2017-02-13 13:13:59 · 381 阅读 · 0 评论