会员
T恤
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
kiraa
博客园
首页
新随笔
联系
订阅
管理
2017年2月19日
无向图的割顶和桥的性质 以及双连通分量的求解算法
摘要: 割顶:对于无向图G,如果删除某个点u后,连通分量的数目增加, 称u为图的割顶。对于连通图,割顶就是删除之后使图不再连通的点。 割顶的求解依如下定理: 在无向连通图G的DFS树中,非根结点u是G的割顶当且仅当u存在一个子节点v,使得v及其所有后代都没有反向边连回u的祖先(连回u)不算。 算法实现: 采
阅读全文
posted @ 2017-02-19 14:49 kiraa
阅读(646)
评论(0)
推荐(0)
2017年1月4日
UVA 11996 Jewel Magic —— splay、序列的分裂与合并、LCP的哈希算法
摘要: 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 9 typedef unsigned long long ull; 10 const int x = 123; 11 const int maxn = 4e5 + 10; 12 ...
阅读全文
posted @ 2017-01-04 19:20 kiraa
阅读(503)
评论(0)
推荐(0)
2016年12月17日
UVA 11922 Permutation Transformer —— splay伸展树
摘要: 题意:根据m条指令改变排列1 2 3 4 … n ,每条指令(a, b)表示取出第a~b个元素,反转后添加到排列尾部 分析:用一个可分裂合并的序列来表示整个序列,截取一段可以用两次分裂一次合并实现,粘贴到末尾可以用一次合并实现。 翻转可以采用在每个结点上做标记的方法,flip = 1意味着将这棵子树
阅读全文
posted @ 2016-12-17 16:22 kiraa
阅读(273)
评论(0)
推荐(0)
模板——伸展树 splay 实现快速分裂合并的序列
摘要: 伸展操作:将treap中特定的结点旋转到根
阅读全文
posted @ 2016-12-17 16:09 kiraa
阅读(950)
评论(0)
推荐(0)
2016年12月15日
LA 5031 Graph and Queries —— Treap名次树
摘要: 离线做法,逆序执行操作,那么原本的删除边的操作变为加入边的操作,用名次树维护每一个连通分量的名次,加边操作即是连通分量合并操作,每次将结点数小的子树向结点数大的子树合并,那么单次合并复杂度O(n1logn2),由于合并之后原本结点数少的子树结点数至少翻倍,所以每个结点最多被插入 logn 次,故总时
阅读全文
posted @ 2016-12-15 19:44 kiraa
阅读(192)
评论(0)
推荐(0)
模板——Treap实现名次树
摘要: Treap 是一种通过赋予结点随机权值的一种满足堆性质的二叉搜索树,它很好的解决了二叉搜索树顺序插入组成链式的局限性。 名次树是指在treap的每个结点中添加附加域size,表示以它为根的子树的总结点树。 名次树支持两个操作:Kth(x): 找出第k小(第k大)的元素。 Rank(x): 值x的名次
阅读全文
posted @ 2016-12-15 19:33 kiraa
阅读(828)
评论(0)
推荐(0)
2016年12月9日
UVA 11107 Life Forms——(多字符串的最长公共子序列,后缀数组+LCP)
摘要: 题意: 输入n个序列,求出一个最大长度的字符串,使得它在超过一半的DNA序列中连续出现。如果有多解,按照字典序从小到大输出所有解。 分析:这道题的关键是将多个字符串连接成一个串,方法是用不同的分隔符把所有原串拼接起来。接下来,就可以求这个新串的后缀数组和 height 数组, 然后二分答案,没次只需
阅读全文
posted @ 2016-12-09 19:18 kiraa
阅读(268)
评论(0)
推荐(0)
2016年12月8日
后缀数组 + LCP加速多模式匹配算法 O(m+logn)
摘要: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int maxn = 200; 8 char s[maxn]; 9 int sa[maxn], t[maxn], t2[maxn], c[maxn]; 10 int n; 11...
阅读全文
posted @ 2016-12-08 11:37 kiraa
阅读(2016)
评论(2)
推荐(0)
2016年12月7日
codeforce 378 div 2 F —— Drivers Dissatisfaction (最小生成树,LCA,倍增)
摘要: 官方题解: If you choose any n - 1 roads then price of reducing overall dissatisfaction is equal to min(c1, c2, ..cn - 1) where сi is price of reducing by
阅读全文
posted @ 2016-12-07 15:28 kiraa
阅读(333)
评论(0)
推荐(0)
LCA (最近公共祖先)倍增做法 —— O(nlogn)预处理 O(logn)(在线)查询
摘要: pa[a][j] 表示 a 结点的 2^j倍祖先(j = 0时 为直接父亲,j = 1时为父亲的父亲……) 1.首先预处理出所有结点的深度值dep和父亲结点 2.预处理出所有结点的 2^j 倍祖先 3.查询操作,首先将 a,b中深度较大的结点上升到与深度较小的结点同一深度,然后两个结点同步上移,直到
阅读全文
posted @ 2016-12-07 15:02 kiraa
阅读(424)
评论(0)
推荐(0)
下一页
公告
点击右上角即可分享