码迷,mamicode.com
首页 >  
搜索关键字:hiho    ( 320个结果
[hiho 17]最近公共祖先 三
题目描述 这次是使用在线算法解决这个问题。 两个节点的最近公共祖先就是这两个节点的通路上深度最浅的那个节点。 可以通过一遍深搜把树转成数组:每次经过一个节点(无论是从父节点进入还是从子节点返回)时,把它放入数组。同时要记录每个节点在数组中最后一次出现的位置。 使用RMQ-ST算法预先计算2^k长度区...
分类:其他好文   时间:2015-05-09 23:18:38    阅读次数:162
[hiho 16]RMQ-ST算法
问题描述 问题就是询问区间内的最小值。 数据量n, 查询量q。 朴素的算法复杂度O(nq)。 为减少冗余计算,预先计算出每个位置起 2^k 长度范围内的最小值。 data[i][j]表示从 i 起的 2^k 个元素的最小值。 递推式 data[i][j] = min{data[i][j – 1], ...
分类:编程语言   时间:2015-05-08 23:33:49    阅读次数:157
[hiho 15]最近公共祖先 二
题目描述这次使用离线算法来解决最近公共祖先的问题。离线算法可以一遍 dfs 处理完所有的查询,因而需要把查询全部储存起来。具体的 dfs 过程是:所有节点最初标记为白色,第一次经过该节点时,将其染成灰色,第二次经过该节点时(即离开该节点时)将其染成黑色。在 dfs 的某个状态下,白色代表未访问的节点...
分类:其他好文   时间:2015-05-08 21:59:30    阅读次数:119
二分图判定 水题 Hihocoder 1121
#include #include #include #include #include using namespace std; #define maxn 10000 + 10 vector G[maxn]; int c[maxn]; int n, m; bool dfs(int u, int color) { c[u] = color; for(int i=0...
分类:其他好文   时间:2015-05-07 14:38:01    阅读次数:129
[hiho 14]并查集
题目描述并查集,顾名思义有两个操作:合并和查询。并就是把两个集合合并到一起。查就是查询两个节点是否属于同一个集合。每个节点有一个父节点。一个集合内存在一个唯一的根,判断根的条件就是节点的父节点是不是该节点本身。合并操作就是把一个集合的根接到另一个集合的根上。而查询操作就是找两个对象是否有同一个根。查...
分类:其他好文   时间:2015-05-06 22:36:17    阅读次数:162
[hiho 13]最近公共祖先 一
题目描述由于这个跟后几周是一个系列,这周的做法比较简单。把第一个人的所有祖先做标记,第二个人向上查找祖先直到找到一个标记过的节点或无法继续为止。代码其实没什么意思。import java.util.HashMap;import java.util.Map;import java.util.Scann...
分类:其他好文   时间:2015-05-05 23:32:07    阅读次数:189
[hiho 12]树上的动归
题目描述回想一下 hiho 03 和 hiho 04 的 KMP 算法和 Trie 图。Trie 图其实就是在树上做 KMP。同样地,树上的动归其实就是……在树上做动归。之前做的动归是在线性表上做的,只有一条路径,树上的动归有多条路径,但这本质上是没有区别的。状态 f[i, j] 含义是以 i 为根...
分类:其他好文   时间:2015-05-05 14:17:45    阅读次数:128
[hiho 11]树的直径
题目描述树的直径必然取自某个节点的两个(或一个)最深的子树,可以一遍DFS解决。#include #include #include using namespace std;vector tree[100005];bool has_parent[100005] = { false };int max...
分类:其他好文   时间:2015-05-05 10:28:35    阅读次数:121
[hiho 10]由前序中序遍历求后序遍历
题目描述分治思想,递归求解。先建树再后序遍历:#include #include #include using namespace std;char pre[26], mid[26];typedefstruct _tree { char c; _tree *lc, *rc; _tree(char c...
分类:其他好文   时间:2015-05-04 01:10:02    阅读次数:219
[hiho 09]状态压缩
题目描述sum[i, j, s] 表示第 i 行第 j 个位置以前(第1到第 i 行,第 i 行第1列到第 j – 1 列)已经全部填满,在状态s的约束下要填满剩余位置的可行方案数。s 是压缩表示的第 i 和第 i + 1 行蛋糕放置状况,sj = (1 #include using namespa...
分类:其他好文   时间:2015-05-03 23:36:25    阅读次数:195
320条   上一页 1 ... 23 24 25 26 27 ... 32 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!