随笔分类 - 

POJ 2513 Trie+并查集+欧拉回路
摘要:自己的代码超时了。。。不应该啊,方法没错哦,明天检查一下吧,网上看到一份不错的代码,不是针对于该题目,而是打印中间过程的方法,很细致,非常有利于debug#include <stdio.h> #include <string.h> //#define DEBUG #ifdef DEBUG #define debug(...) printf( __VA_ARGS__) #else #define debug(...) #endif #define M 530001 #define N 500001 struct trie_node { ... 阅读全文
posted @ 2011-10-25 00:09 geeker 阅读(306) 评论(0) 推荐(0)
RMQ 线段树实现+DP实现 模板
摘要:线段树能在对数时间内在数组区间上进行更新与查询。 定义线段树在区间[i, j] 上如下: 第一个节点维护着区间 [i, j] 的信息。 if i<j , 那么左孩子维护着区间[i, (i+j)/2] 的信息,右孩子维护着区间[(i+j)/2+1, j] 的信息。 可知 N 个元素的线段树的高度 为 [logN] + 1(只有根节点的树高度为0) . 下面是区间 [0, 9] 的一个线段树: 线段树和堆有一样的结构, 因此如果一个节点编号为 x ,那么左孩子编号为2*x 右孩子编号为2*x+1. 使用线段树解决RMQ问题,关键维护一个数组M[num],num=2^(线段树高度+1). M[ 阅读全文
posted @ 2011-10-05 15:33 geeker 阅读(311) 评论(1) 推荐(0)