
数据结构
tjdrn
这个作者很懒,什么都没留下…
展开
-
uva 11386
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2381 题意就是给出5000个数, 求有多少组a + b = c, 一开始只想到了n ^ 2 * log(n)的做法, T了之后果断改成了n ^ 2就过了,速度也不慢。。。 #inc原创 2013-07-15 23:26:16 · 860 阅读 · 0 评论 -
sgu 507 (启发式合并)
题目链接 题意就是求一棵树以每个内节点为根的子树中所有叶子节点的权值差的最小值, 做法就是对每个子树维护一颗平衡树然后向上递推合并时用启发式。。。 #include #include #include #include #include using namespace std; inline int read() {//used to read 32bit posit原创 2013-10-17 23:20:05 · 1289 阅读 · 0 评论 -
hdu 4680(数据结构)
题目链接 比赛时一看这题操作这么多, 还有gcd三角形神马的以为是个神题, 后来发现这题其实挺基础的, 就是用并查集和平衡树同时维护若干集合, 合并时用启发式第二个删点操作是并查集中的经典操作, 做法就是找一个新的点替代原来的点类似http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18692, 第一种查询找到最小次原创 2013-10-18 12:33:58 · 1337 阅读 · 0 评论 -
hdu 3726 (数据结构综合(好题))
题目链接 LRJ白书上的例题, 最近复习数据结构时又A了一遍这题, 此题很经典同时考察了数据结构中的离线,平衡树, 并查集, 启发式合并等多个常用技巧, 其中离线将所有操作反向处理值得回味, 详细讲解可以看白书。 #include #include #include #include #include using namespace std; inline int read(原创 2013-10-17 22:04:41 · 1406 阅读 · 2 评论 -
uva 11990(动态逆序对)
题目链接 刘汝佳的数据结构专场题目, 题目就是给定一个1~n的排列求删除某个数后剩下的逆序对的个数, 我 一开始的做法是树状数组套Treap后来T了, 又翻了白书, 白书上的解法是用到了一个静态的BST,因为这 题的特殊性, BST只需要有删除动能, 所以再用Treap就显得大才小用了, 而且用静态的常数也小了很多, 套Treap总的复杂度是(n + q) * log(n) *原创 2013-08-07 14:11:27 · 1834 阅读 · 0 评论 -
spoj STRLCP (数据结构 + hash)
题目链接原创 2013-09-30 22:28:03 · 996 阅读 · 0 评论 -
hdu 4391
题目链接 典型的sqrt(n)分块题目, 不过是个插段问段, 做法还是大同小异。。。。 #include #include #include #include #include using namespace std; const int sz = 400; inline int readint() { char c = getchar(); while (!isdig原创 2013-09-07 09:46:07 · 704 阅读 · 0 评论 -
spoj FTOUR2(树的分治)
题目链接 QZC树的分治论文第二道例题, 自己想了想觉得没什么思路, 后来看了论文中的解法看到中间时想到了一个线段树优化dp的解法, 论文中也提到的令dp[L] 标示从当前根结点向下经过L个crowded节点的最长路径值,在进行分治时用两个dp数组, dp1表示当前根节点前i - 1棵子树的dp值, dp2表示第i棵子树的dp值, 用线段树维护dp1的值,我们每次dfs一个子树时得到dp2原创 2013-08-17 11:18:36 · 1206 阅读 · 0 评论 -
hdu 4631(增量最近点对)
题目链接 CLJ神犇的题目, 其实这题解法并不难, 算是个经典问题解法的简单变形吧, 对于最近点对这个问题, 一般有两种做法, 有一种针对随机数据很快的O(n ^ 2)解法, 还有一种严格O(n * log(n))的分治算法, 对于一般的题目前者会比较快,如果不熟悉这两种做法可以参考http://www.csie.ntnu.edu.tw/~u91029/PointLinePlane2.htm原创 2013-08-10 20:25:58 · 821 阅读 · 0 评论 -
hdu 4670 (树的分治)
题目链接 经典的男人八题的改编题目, 从边权到了点权, 而且每个节点有30个三进制的状态, 但其实做法还是和原来大同小异的在处理子问题时需要用到一个map, 复杂度为n * log(n) * log(n) * 30 #include #include #include #include #include #include #include using namespac原创 2013-08-16 10:30:19 · 1145 阅读 · 0 评论 -
hdu 4601 (bfs + dfs + trie)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4601 题意很简单就是给出一个类似trie的树形结构, 每个节点表示一个单词, 要求查询从某个点u向下走m步可以获得的字符串的字典序最大的hash值。做法就是建出一棵与原树对应的trie树, 对其dfs获得原树每个节点对应单词的rank值, 考虑到查询的特殊性然后对原树进行层次遍历, 使得同一层的点在原创 2013-07-26 22:37:22 · 1081 阅读 · 0 评论 -
hdu 4614(线段树)
题目链接 挺基础的一个线段树题目,两种操作, 第二种就是区间和, 第一种的话起始下标也很容易得到, 主要是终点下标需要思考一下, 我的做法是记录下当前剩余多少花还没放, 然后找到第一个剩余花小于当前区间总空位的个数的区间, 然后根据左子区间的剩余情况再递归直到叶子节点, 线段树每个节点维护三个统计量空位的个数第一个空位最后一个空位, 以及一个lazy标记。#include #include原创 2013-08-12 19:50:14 · 737 阅读 · 0 评论 -
spoj 4155 (LCT)
题目链接:http://www.spoj.com/problems/OTOCI/ LCT模板题 #include #include #include #include #include #include using namespace std; const int N = 30006; const int M = N << 1; inline int max(int原创 2013-07-29 20:33:39 · 848 阅读 · 0 评论 -
hdu 4605(离线 + dfs + 树状数组(好题))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4605 多校第一场的题,赛后看了题解感觉这题也不是很难, 比赛时忙于别的题目这题都没看, 还是经验不足啊, 这道题就是利用dfs结合树状数组或者平衡树(可以支持查找当前集合小于val的元素个数的数据结构)统计从根结点到当前点的一条树链上的权值,向下递归时插入回溯时再删除, 需要把所有查询离线处理, 每原创 2013-07-25 11:59:48 · 903 阅读 · 0 评论 -
uva 12345 (分段 / 树套树(好题))
开通博客的第一篇解题报告, 题目要求维护一个序列支持两种操作1. 序列的单点修改 2.查询序列区间内不同的数的个数。 本题有很多解法我打算就写下列三种: 1.分段 2.线段树套Treap 3.树状数组套主席树, 题目中的查询不好处理, 我们可以考虑把原数组转化一下, 令arr表示原数组, 定义 L数组 L[i] = max{j | j < i && A[j] = A[i]} 其实就是i左边第原创 2013-07-11 10:50:33 · 1957 阅读 · 0 评论 -
uva 11994(LCT)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=3145 给出一个森林, 要求支持三种操作: 1.将节点x和它的父节点p[x]的边砍断, 并使x成为y的一个子节点, 若x为y的祖先则忽略,原创 2013-07-30 11:34:10 · 942 阅读 · 0 评论 -
hdu 4010(LinkCutTree)
题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=4010 LinkCutTree的模板题, 感觉LCT的思想和树链剖分差不多, 都是把树拆成若干条树链, LCT就是用Splay树维护每条链, 以节点的深度作为关键字, 代码主要是参考了这位神牛的blog:http://www.shuizilong.com/house/archives/hdu-401原创 2013-07-29 19:54:32 · 934 阅读 · 0 评论 -
spoj GSS7(树链剖分 + 线段树区间合并)
题目连接 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-12-28 16:40:53 · 1121 阅读 · 0 评论