备考模板
JarjingX
只是一个奋斗的OIER。
展开
-
【数据结构】后缀数组
// 字符串处理 后缀数组 void build_sa( char * s ) // 字符串从第一位开始读入,第0位任意填入一个字符便于操作 { int j, num, n = strlen( s )-1, m = 200, *x = a1, *y = a2; for( int i = 1; i <= m; i++ ) c[i] = 0; for( int i = 1; i原创 2013-03-12 10:22:03 · 1183 阅读 · 0 评论 -
【算法】KMP
// 字符串匹配 KMP 算法 void kmp( char * mom, char * son ) // 字符串从1下标开始读,0位随便添一个,方便操作 { lenm = strlen( mom )-1; lens = strlen( son )-1; int k = 0; for( int i = 2; i <= lens; i++ ) {原创 2013-03-12 10:26:51 · 1099 阅读 · 1 评论 -
【算法】dinic
// 网络流 dinic 算法 bool bfs( ) { memset( dis, -1, sizeof dis ); int i, j, clo = 0, open = 1; q[1] = n, dis[n] = 0; while( clo < open ) { i = q[++clo]; for( int k = h[i原创 2013-03-12 10:24:09 · 1059 阅读 · 0 评论 -
【数据结构】二叉堆与左偏树
// 二叉堆 void up( int i ) { int dad = i >> 1, data = heap[i]; while( dad != 0 && heap[dad] > data ) { heap[i] = heap[dad]; i = dad; dad = i >> 1; } heap[i] =原创 2013-03-14 09:08:44 · 1225 阅读 · 0 评论 -
【数据结构】伸展树 Splay
// 平衡树 splay 模板 void rotate( int i ) { int D = dad[i], G = dad[D], S = son[i][ !typ[i] ]; son[G][ typ[D] ] = i, dad[S] = D; son[D][ typ[i] ] = S, dad[D] = i; son[i][ !typ[i] ] = D, dad原创 2013-03-12 10:29:28 · 987 阅读 · 0 评论 -
【算法】计算几何
刚写了一个计算几何的模板,这样可以减少很多的函数,实现起来也很清楚,以后自己就这样写好了…… // 常用计算 #define vector point struct point { double x, y; point( double x = 0, double y = 0 ): x( x ), y( y ) { } }; vector operator + ( vecto原创 2013-03-14 23:18:18 · 1335 阅读 · 0 评论