- 博客(21)
- 资源 (9)
- 收藏
- 关注
原创 poj 3080 Blue Jeans (KMP+最长公共子串)
题目链接: hdu 1269题目大意: 给定n个字符串,找出最长的公共子串,不存在输出 no significant commonalities解题思路: 选出长度最短的字符串,枚举它的子串 把它的子串分别与其余的n-1个字符串匹配 字符串长度越短它的子串就越少,枚举量越少
2013-10-23 13:08:26 1190
原创 poj 3450 Corporate Identity (KMP+最长公共子串)
题目链接: poj 3450题目大意: 给定n个字符串,找出最长的公共子串,若长度小于3则输出IDENTITY LOST解题思路: 选出长度最短的字符串,枚举它的子串 把它的子串分别与其余的n-1个字符串匹配 字符串长度越短它的子串就越少,枚举量越少 枚举子串的顺序
2013-10-23 12:55:39 1400
原创 poj 1961 Period (KMP+最小循环节)
题目链接: poj 1961题目大意: 给定字符串,找出他所有的前缀的最小循环节的长度解题思路: 思路与2406一样 Tlen%(Tlen-next[Tlen])==0则Tlen-next[Tlen]是最小循环节 证明过程参考2406的解题报告 这里需要多次
2013-10-23 12:38:22 945
原创 poj 2406 Power Strings (KMP+最小循环节)
题目链接: poj 2406题目大意: 给出一个由某个串重复有限次得到的字符串 求重复次数最多是多少,既找出最小重复子串解题思路: 字符串abcabcabc的next[ ]值为 0 1 2 3 4 5 6 7 8 9 a b c a b c
2013-10-23 11:24:33 948
原创 hdu 3072 Intelligence System (Tarjan+Kosaraju+缩点)
题目链接: hdu 3072题目大意: 给定有权值有向图,并且题意满足缩点之后只有一个入度为0的点 从该点出发,传递到所有的顶点的最小权值 联通分量内的点之间互相传递且不需要计算权值解题思路: 缩点后的是DAG,并且唯一入度为0的顶点 顶点入度的边至少存在一
2013-10-22 23:49:28 954
原创 poj 2186 Popular Cows (Kosaraju+缩点)
题目链接: poj 2186题目大意: 给定有向图,满足X使得图中任意的顶点Y都存在Y-->X的路径 计算X满足条件的顶点总数解题思路: Kosataju找联通分量,缩成点 出度为0的顶点必须有且仅有一个 如果出度为0的顶点有若干个,那么这些联通分量之间是不
2013-10-22 23:09:14 866
原创 hdu 2767 Proving Equivalences (Kosaraju+缩点)
题目链接: hdu 2767题目大意: 给定有向图,问至少加入多少条边可以使得其成为联通图解题思路: Kosaraju找联通分量,并缩成点 缩点之后形成一个或者多个DAG,题意不保证图联通 统计缩点后Max(入度为0顶点数,出度为0顶点数) 对于缩点后的图分两种情况
2013-10-22 18:13:53 1075
原创 poj 2762 Going from u to v or from v to u (Kosaraju+缩点+单链图)
题目链接: poj 2762题目大意: 给定有向图,问是否满足对于任意的顶点X和Y 使得X->Y或Y->X至少存在一条路径解题思路: 联通分量找出,缩成点形成DAG(有向无环图) 使得缩点后的图满足题意,必须是单链图 换句话说同一个点只能有一个分支
2013-10-22 13:28:15 1044
原创 hdu 1269 迷宫城堡 (Kosaraju+缩点)
题目链接: hdu 1269题目大意: 给出的有向图是否满足任意两点a,b之间 存在a到b的路径和b到a的路径解题思路: 判断是否仅有一个强联通分量 Kosaraju算法的核心思想: 从未访问过的点用Kosaraju正向边搜索遍历完所有的顶点,记录层次dnf[ ]
2013-10-22 11:27:16 1148
原创 hdu 3849 By Recognizing These Guys (割边/桥)
题目链接: hdu 3849题目大意: 给出无向图,找出所有的割边 并且按边输入的顺序输出 如果图不连通则直接输出0解题思路: 先用map或者Hash把字符串转化为编号 根据编号建立无向图 Tarjan搜索无向图的桥
2013-10-05 20:36:57 901
原创 zoj 2588 Burning Bridges (割边/桥)
题目链接: zoj 2588题目大意: 在无向连通图中找桥,并且按序号输出解题思路: Tarjan查找割边 low[vv]>dnf[u]是桥,low[vv]>=dnf[u]是割点代码://Final Tarjan 找桥(割边)#include #include #include #include using name
2013-10-05 19:43:40 1171
原创 uva 10000 Longest Paths (SPFA)
题目链接: uva 10000题目大意: 无环的有向连通图中 从某点出发可以达到的最远的点 并且输出长度和终点编号解题思路: 求某点出发的最长路径 BFS从起点开始搜索,dist[ ]存储到达该点时的最长距离: 1.如果这个
2013-10-05 02:11:36 1814
原创 poj 1986 Distance Queries (LCA)
题目链接: poj 1986题目大意: 给出一棵树,求a—b路径的长度解题思路: 与hdu 2874类似 LCA离线查找最近公共祖先 dist[ ]求距离: 距离=dist[ a ] + dist[ b ] — 2*dist[ LCA(a,b) ]代码://Final LCA离线 查找两点最
2013-10-05 00:45:23 1371
原创 hdu 2874 Connections between cities (LCA)
题目链接: hdu 2874题目大意: 在有权值森林中,任意查询两个结点的最短距离 若两点不联通则输出Not connected解题思路: 用并查集把边连接的两个结点合并 查询的时候先判断两点是否在同一个联通图,不联通则直接输出 如何求联通块内任意结点间的距离呢?F
2013-10-05 00:24:50 1125
原创 poj 1470 || zoj 1141 Closest Common Ancestors (LCA)
题目链接: poj 1470题目大意: 给出一棵树,然后有有限次查询(a,b) 每次查询节点a与节点b的最近公共祖先 输出节点作为最近公共祖先的次数解题思路: 离线查询最近公共祖先 把每次查到的结果visit[ ]++,最后遍历一遍就行了代码://Final
2013-10-05 00:15:06 1271
原创 poj 1330 Nearest Common Ancestors (LCA)
题目链接: poj 1986题目大意: 给出你一棵树,最后一行询问顶点a和顶点b的最近公共祖先解题思路: Tarjan离线查找最近公共祖先: 搜到新的顶点,此顶点的临时祖先就是上一层的顶点 直到搜到叶子就开始回溯,回溯的时候 从这点出发搜过的顶点的临时祖先合并为这个顶
2013-10-04 15:19:42 1088
原创 hdu 4763 Theme Section(KMP)
题目链接: hdu 4763题目大意: 找出字符串的最长子串,这个子串满足既是前缀和后缀,并且在中间会出现解题思路: 不妨先找出所有前缀等于后缀的子串长度(poj 2752 解题报告) 从长到短(长度不大于主串的1/3)枚举子串的长度 前缀等于后缀的子串长度为ans[ i ]
2013-10-03 19:11:39 1099 1
原创 poj 2752 Seek the Name, Seek the Fame (KMP)
题目链接: poj 2752题目大意: 给出字符串,找出所有的前缀和后缀相等的子串 按小到大输出这些子串的长度解题思路: 如图所示,根据next[ ]前缀的性质左边有颜色部分和右边有颜色部分完全相等 因为左边的红色和右边的红色相等,
2013-10-03 17:53:39 2302
原创 poj 3461 Oulipo (KMP)
题目链接: poj 3461题目大意: 给出主串和模式串,求模式串在主串中出现的次数(部分可以重合)解题思路: KMP从主串的第一个字符开始匹配 开始是匹配成功就立刻退出,再次从上次退出的下一个字符开始匹配,TLE... 利用上next[ ]数组的含义,每次不全部退出,而是退出部分j=next[ j ]
2013-10-03 12:26:56 1012
原创 poj 1226|| hdu 1238 Substrings(KMP)
题目链接: poj 1226题目大意: 给出N个字符串,找出一个最长的子串 使得它和N个字符串正向或者逆向匹配,输出长度解题思路: 如果这个字串存在,那么它必定存在与N个字符串中最小的那个串 找到N个字符串中最小的串,然后枚举最小串的所有子串 从最长的子串开始枚举,长度逐渐
2013-10-03 12:02:10 1323
poj 2785 测试数据
2013-03-01
poj 2485 Highways 测试数据
2013-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人