03 2016 档案
摘要:之前似乎网络流的建图题做得比较少啊…现在来做一点。 首先是模板。 最大流 poj1273 Drainage Ditches 最小费用最大流 poj2135 Farm Tour 无源汇上下界最大流 zoj2314 Reactor Cooling 加超级源汇点,对于一条容量在[a,b]之间的边,把容量改
阅读全文
摘要:AC自动机就是在trie树上的每一个节点上加了一个fail指针,用来多串匹配,类似fail数组。 模板题:hdu2222 给出n个串,然后给一篇文章,问这n个串有多少个在文章里面出现过。 首先我们把这n个串搞成一棵AC自动机,然后在这上面匹配这一篇文章。 (盗图一张) 首先我们先建成一棵单纯的trie,然后每个结束节点做点标记啥的。 然后我们来构造失败指针。我们在这颗trie上面bf...
阅读全文
摘要:本来不想学的…于是今天就碰到一道大裸题… 例题:bzoj2823 求最小圆覆盖n个点。 伪代码如下: 把所有点随机化,设为(x[1],y[1])...(x[n],y[n]) 开始把圆心设为x[1],半径设为0for i=2 to n 如果i号点在当前圆内则跳过 //那么i号点就在圆周上 把1号点和i号点作为直径作一个圆 for j=1 to i-1 ...
阅读全文
摘要:都是论文里的例题~ ①最长公共前缀 给一个字符串,询问某两个后缀的最长公共前缀。 对于suffix(l)和suffix(r),如果l=r的话要特判一下。否则如果rank[l]=k。 那么最长公共前缀不小于k的两个后缀一定在同一组,所以如果在一组中出现两个sa绝对值差>=k就是可行的。否则不可行。 //不可重叠最长重复子串 poj1743//O(nlogn)#include #i...
阅读全文
摘要:论蒟蒻如何被cf虐 以下是身败名裂后的题解菌=========== Div1 A.Watchmen 有n个点,每个点有一个坐标。求曼哈顿距离=欧几里得距离的点对数量。 只需要统计x或y一样的点对数量。容斥即可。注意long long。(sad story //By zzq#include #include #include #include #include #include ...
阅读全文
摘要:先贴一点字符串相关算法好了。 学习资料: http://wenku.baidu.com/link?url=0UsXCx1NUs5Sqpv9c8lx7ewHDMacm7WfjPtdwyqsa3z0NV_m6p_3NUE5h6ben0KCf_zxrQ9TEXkCrHkkWjkPpzALolLqhMJwBcKgFAGKCwy 《后缀数组——处理字符串的有力工具》罗穗骞 http://cxjyxx...
阅读全文
摘要:上一次我们写的线段树已经可以解决区间查询、单点修改了!可喜可贺 那如果现在我们需要区间修改、区间查询呢? 一般有两种思路:lazytag和标记永久化,lazytag的使用面好像更广一些。 一、lazytag 比如我们现在要修改一个区间,我们可以像查询一样分成若干段,然后分别修改每一段。 那么问题来了,每一段要怎么修改?如果直接修改sum,询问就乱套了。如果暴力修改,最坏复杂度O(n),那...
阅读全文
摘要:友情提醒:这篇文章中的大部分东西都出自popoqqq的课件《莫比乌斯反演》和hzwer的博客,orz 首先我们来看一个函数,$F(n)=\sum_{d|n}{f(d)}$。这个函数还是十分常见的。例如我们令f(d)=d,那么F(n)就可以表示n的因数和。那么F(1)=f(1)F(2)=f(1)+f(2)F(3)=f(1)+f(3)F(4)=f(1)+f(2)+f(4)F(5)=f(1)+f(5)...
阅读全文
摘要:线段树嘛…就是一个长得像这个样子的一棵树! 这颗树上的一个点就代表了一个连续的区间,当然如果你高兴也可以把区间当成线段,所以这玩意儿就叫线段树。然后我们发现一个点的左孩子右孩子就是把这个区间从中间剖成两段后的前一段后一段。 比如我们现在有一个数列…就9 8 7 6 5 4好了 那我们可以在线段树上维护一个这个区间内元素的和,我们发现,左端点=右端点的这些点的和就是数列里的元素,如果不等于...
阅读全文
摘要:本来在百度空间有一个小博客… 然后后来百度空间挂了搬到logdown… 后来logdown服务器各种不稳定就搬到了博客园啦… 博客园支持live writer感觉还是十分业界良心的. =======以下为测试======= 代码插入测试 #include int main(){ std::cout<<"代码插入测试!";}latex测试$\sum_{i=1}^n{i}$图片...
阅读全文