摘要: link 也算是一道模板题了。 上一道题并没有提到的是,后缀数组还有一个很重要的应用,即$height$数组,以下简称h。$h_i$的定义是排名为i的后缀与排名为i-1的后缀的最长公共前缀长度,而h数组我们可以$O(N)$求得。方法如下。 首先有一个结论,\(h[rank[i-1]]-1\le h[ 阅读全文
posted @ 2022-02-08 22:15 Feyn618 阅读(92) 评论(0) 推荐(0) 编辑
摘要: link 挖个坑。SAM这种坑B玩意我寒假之前一定要搞懂。但现在而今眼目下,我的功力还不够,搞后缀自动机很有点困难,毕竟我连AC自动机都不会…… 但后缀数组相对而言简单一些。学的时候并不知道有什么用,但后来发现太有趣了。首先入门题,后缀排序。 这里使用了两个东西,一个是基数排序,一个是倍增思想。基数 阅读全文
posted @ 2022-02-08 21:38 Feyn618 阅读(49) 评论(0) 推荐(0) 编辑
摘要: link 我的网络流建模第一题。当然那个什么奶牛的电信太弱了忽略不计。 我目前做到的网络流题目都用到了一个很重要的结论,那就是在一个网络流中,最小割等于最大流。严谨的证明我不会也懒得去想,感性的证明还是懂的。先不管这玩意为什么正确,知道它正确就行了。它有许多重要的应用,因为可以把网络流中的边看成是一 阅读全文
posted @ 2022-02-08 18:06 Feyn618 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 早闰的危害,刘义兵经典名言。 以上是题外话。 在C++中&&和||的运算顺序都是先算左边再算右边。这在压行中显得十分重要。举几个例子: 假如有 bool a=true,b=false; 那么会有以下结论。默认修改变量只对行内的引用有效。 c=(a=b)||a;//c=false c=a||(a=b) 阅读全文
posted @ 2022-02-08 16:26 Feyn618 阅读(50) 评论(0) 推荐(0) 编辑
摘要: link 也是一道模板题,和最大流是一个道理。我学的这种写法是Dinic的改进版,给每条边维护两个边权,一个是流量,一个是费用。每次对费用用SPFA跑一个最短路,然后就着这个最短路去跑一次Dinic。唯一需要注意的是反边。考虑到反边的本质是让某条旧路径放弃原有的那一段路不走了,所以费用应该会减少,建 阅读全文
posted @ 2022-02-08 16:19 Feyn618 阅读(33) 评论(0) 推荐(0) 编辑