上一页 1 2 3 4 5 6 7 ··· 16 下一页
摘要: 题目链接:BZOJ - 1014题目分析求两个串的 LCP ,一种常见的方法就是 二分+Hash,对于一个二分的长度 l,如果两个串的长度为 l 的前缀的Hash相等,就认为他们相等。这里有修改字符和插入字符的操作,所以用 Splay 来维护串的 Hash 值。一个节点的值就是它的子树表示的字串的 ... 阅读全文
posted @ 2015-04-24 21:08 JoeFan 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 3995题目分析这道题..是我悲伤的回忆..线段树维护连通性,与 BZOJ-1018 类似,然而我省选之前并没有做过 1018,即使它在 ProblemSet 的第一页。更悲伤的是,这道题有 40 分的暴力分,写个 Kruskal 就可以得到,然而我写了个更快的 DP 。这本... 阅读全文
posted @ 2015-04-24 16:02 JoeFan 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 1086题目分析这道题要求给树分块,使得每一块的大小在 [B, 3B] 之间,并且可以通过一个块外的节点(块根)使得整个块联通。那么我们使用一种 DFS,维护一个栈,DFS 完一个节点 x 的所有子树后,就将 x 压入栈内。我们不能简单的判断栈内元素 >= B 就将栈中的元素... 阅读全文
posted @ 2015-04-24 15:39 JoeFan 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 3669题目分析如果确定了带 x 只精灵A,那么我们就是要找一条 1 到 n 的路径,满足只经过 Ai #include #include #include #include #include using namespace std;inline void Read(int ... 阅读全文
posted @ 2015-04-23 17:44 JoeFan 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 2594题目分析这道题如果没有删边的操作,那么就是 NOIP2013 货车运输,求两点之间的一条路径,使得边权最大的边的边权尽量小。那么,这条路径就是最小生成树上这两点之间的路径。然而现在有了删边操作,我们就需要一直维护当前的最小生成树。删边然后维护 MST 还是不会做的,但... 阅读全文
posted @ 2015-04-23 15:45 JoeFan 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 2631题目分析LCT,像线段树区间乘,区间加那样打标记。这道题我调了一下午。提交之后TLE了,我一直以为是写错了导致了死循环。于是一直在排查错误。直到..直到我看了hzwer的博客,就一句话:“其实这题不需要开long long。。。只要unsigned int,不然可能会... 阅读全文
posted @ 2015-04-22 17:48 JoeFan 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 3282题目分析这道题是裸的LCT,包含 Link , Cut 和询问两点之间的路径信息。写代码时出现的错误:Access(x) 的循环中应该切断的是原来的 Son[x][1] ,然而我写成了 Son[x][0] !代码#include #include #include #... 阅读全文
posted @ 2015-04-22 10:32 JoeFan 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 2049题目分析LCT的基本模型,包括 Link ,Cut 操作和判断两个点是否在同一棵树内。Link(x, y) : Make_Root(x); Splay(x); Father[x] = y;Cut(x, y) : Make_Root(x); Access(y); 断掉 ... 阅读全文
posted @ 2015-04-21 21:07 JoeFan 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 1036题目分析这道题可以用树链剖分,块状树等多种方法解决,也可以使用 LCT。修改某个点的值时,先将它 Splay 到它所在的 Splay 的根,然后修改它的值,再将它 Update 一下。(1)询问 x, y 两点之间的路径时,假设 x 是深度小的那一个,先 Access... 阅读全文
posted @ 2015-04-21 19:19 JoeFan 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 题目链接:HDOJ - 5208题目分析使用按位贪心的思想,即从高位向低位枚举,尽量使这一位的答案为 1 。我们使用 DFS ,每次就是对于 [l1, r1] [l2, r2] x 进行处理,其中,x 是当前处理的最高位的权值,即 2^i 。如果 A 和 B 两人的区间的最高位都确定了,那就记录这一... 阅读全文
posted @ 2015-04-20 16:37 JoeFan 阅读(239) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 16 下一页