摘要:
这次的后缀数组写的成熟点,也好看点,以后生成后缀数组的话就用这里的build_sa()函数吧rank[i]表示以i为起点的后缀在sa数组中的位置,height[i]则表示sa[i]和sa[i-1]的最长公共前缀的长度。有一个定理:height[rank[i]]>=height[rank[i-1]-1 阅读全文
摘要:
这次的后缀数组写的成熟点,也好看点,以后生成后缀数组的话就用这里的build_sa()函数吧rank[i]表示以i为起点的后缀在sa数组中的位置,height[i]则表示sa[i]和sa[i-1]的最长公共前缀的长度。有一个定理:height[rank[i]]>=height[rank[i-1]-1 阅读全文
摘要:
后缀数组的原理很简单,将一个字符串S的所有后缀组成一个字符串数组,并排序,则以后每次判断某个字符串D是不是S的子串只需要strlen(D)*log(strlen(s))的时间复杂度。Codevs1500这题就是一道裸题,考后缀数组的生成,如果一个一个将S的后缀加入到后缀数组中并快速排序需要的时间复杂 阅读全文
摘要:
题目大意:有一个类似于工业加工生产的机器,起点为1终点为n,中间生产环节有货物加工数量限制,输入u v z c, 当c等于1时表示这个加工的环节必须对纽带上的货物全部加工(即上下界都为z),c等于0表示加工上界限制为z,下界为0,求节点1(起点)最少需要投放多少货物才能传送带正常工作。解题思路: 1 阅读全文
摘要:
ZOJ3229题目大意:一个屌丝给m个女神拍照,计划拍照n天,每一天屌丝可以和C个女神拍照,每天拍照数不能超过D张,而且给每个女神i拍照有数量限制[Li,Ri],对于每个女神n天的拍照总和不能少于Gi,如果有解求屌丝最多能拍多少张照,并求每天给对应女神拍多少张照;否则输出-1。 解题思路: 1.增设 阅读全文
摘要:
今天开始啃网络流了。对于求解无源汇带上下界的网络流,我们可以这样建图:建图模型: 以前写的最大流默认的下界为0,而这里的下界却不为0,所以我们要进行再构造让每条边的下界为0,这样做是为了方便处理。对于每根管子有一个上界容量up和一个下界容量low,我们让这根管子的容量下界变为0,上界为up-low。 阅读全文
摘要:
Splay树可以利用 我Treap树的程序中的rotate函数实现 Splay(x,S)功能,将节点x伸展的节点S处。Splay(x,S)时有三种情况:1、zig情况。 X是查找路径上我们需要旋转的一个非根节点。 如果X的父节点是根,那么我们用下图所示的方法旋转X到根: 图2 这和一个普通的单旋转相 阅读全文
|