上一页 1 2 3 4 5 6 7 8 ··· 99 下一页

2012年9月26日

后缀数组应用2: 最长回文字串

摘要: 算法:把字符串逆序拼接在第一个字符串后面,然后就是求最长公共前缀。。#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<vector>#include<string>#include<math.h>#include<map>#include<set>#include<algorithm>using namespace std;#define MAXN 10010int 阅读全文

posted @ 2012-09-26 16:13 more think, more gains 阅读(201) 评论(0) 推荐(0) 编辑

2012年9月25日

后缀数组应用之1:求最长公共子串

摘要: 搞了一天,代码还未AC过题,自己打的测试数据过了。。算法:1. 倍增算法求sa,rank数组,时间复杂度O(nlgn).2. O(n)时间复杂度求height数组。。3. RMQ,预处理,时间复杂度O(nlgn)4.每次查询时间复杂度O(1)代码:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<vector>#include<string>#include<math.h>#include<map 阅读全文

posted @ 2012-09-25 21:38 more think, more gains 阅读(318) 评论(0) 推荐(0) 编辑

2012年9月24日

poj 3177 缩点,双连通分量

摘要: 算法:就是给你一个无向图,至少添加几条边,使得从fieldsi 到fields j的路径至少有两条以上。转化为问题:添加几条边使得图变成双连通图。。方法:1.用tarjian算法缩点。。2.根据公式计算。。若要使得任意一棵树,在增加若干条边后,变成一个双连通图,那么至少增加的边数 =( 这棵树总度数为1的结点数 + 1 )/ 2来自:http://blog.csdn.net/lyy289065406/article/details/6762370#include<stdio.h>#include<stdlib.h>#include<string.h>#inc 阅读全文

posted @ 2012-09-24 18:32 more think, more gains 阅读(200) 评论(0) 推荐(0) 编辑

poj 1523 求割点

摘要: 题意:是求一个无向图的割点,和连通子图个数。根据割点定义:1. u为根, 则u至少有两个儿子。2. u不为根,则至少存在某一儿子节点s, low[s] >= d[u], 即s和s的后代不会追溯到比u更早的祖先点。#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<vector>#include<string>#include<math.h>#include<map>#include< 阅读全文

posted @ 2012-09-24 12:11 more think, more gains 阅读(122) 评论(0) 推荐(0) 编辑

2012年9月22日

HDU 4405 Aeroplane chess

摘要: 算法:概率DP, dp[i] 表示到达i后还需要多少次可使游戏结束。。。#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<vector>#include<string>#include<math.h>#include<map>#include<set>#include<algorithm>using namespace std;#define Pe (1.0 / 6. 阅读全文

posted @ 2012-09-22 21:44 more think, more gains 阅读(113) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 99 下一页

导航