摘要:1.hud 1166http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 本题目涉及到了区间操作和点操作两种操作。 区间操作(区间和):我们采用了递推的方法来建树,建好了叶子结点之后,我们再回溯来建整个区间。(这个操作是关键) 点操作:点操作必然涉及到区间的改动,我们判定,只要这个点在一个区间上,那么我们就对这个区间操作。View Code #include "iostream"#include "string"#include "algorithm"using namespace s
阅读全文
摘要:hdu 1536 http://acm.hdu.edu.cn/showproblem.php?pid=15361.首先,mex的介绍:mex运算这是一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,3}=4;mex{0,1,3,4}=2; mex{1,2,3,5}=?2.然后,sg函数的定义和性质:sg函数sg函数的定义如下:g(x)=mex{g(y) | y是x的后继}很明显这是一个递归运算。sg函数的性质了:如果g(x)=0 那么 x 位置就是必败点。如果g(x)>0 那么 x 位置就是必胜点。View Code #include "iostrea
阅读全文
摘要:队列,从一头进入,从另一头删除的数据结构。第一步:初始化|_||_||_||_||_||_| t=h=0第二步:从队尾加入一个元素8|_||_||_||_||8| t=1|_| h=0第三步:从队尾删除一个元素|_||_||_||_||8||_| t=h=0在这里虽然8仍然存在,但是由于t=0,所以下次如果在加入一个元素会将其覆盖掉,所以我们认为t--,就是对数据的删除队列的典型的题目是:poj 2823 http://poj.org/problem?id=2823代码如下:View Code #include <stdio.h> #include <string.h>
阅读全文
摘要:我们所说的堆栈其实就是栈这种数据结构。只能在栈顶来进行添加和删除。第一步:初始化|_||_||_||_||_||_| top=0;第二步:加入一个元素8|_||_||_||_||8| top=1;|_|第三步:删除一个元素|_||_||_||_||8| |_| top=0;典型的堆栈的题目是:poj 3250 http://poj.org/problem?id=3250代码如下:(不用stl的代码,141ms)View Code include "iostream"#include "string"#include "algorithm&quo
阅读全文
摘要:线段树,后缀树(KMP,AC自动机),后缀数组,树状数组1.树形dphdu 1011 题意http://www.cnblogs.com/183zyz/archive/2011/07/19/2110983.htmlhdu 1011 题解http://acm.hdu.edu.cn/viewcode.php?rid=64458092.线段树hdu 1166 题目http://acm.hdu.edu.cn/showproblem.php?pid=1166hdu 1166 题解http://acm.hdu.edu.cn/viewcode.php?rid=64494153.后缀树构造后缀树的详细算法描述
阅读全文