Home avatar

时光似海

网络流

bfs找路,途中记录前驱节点

让后从汇点遍历到起点,找到最小flow

再次遍历,更新沿途边

累加答案,继续bfs

MySQL操作手册(个人笔记)

此文为个人笔记,大学时候的总结难免有错,不代表本人目前水平[手动doge] (by 2021)

本来这总结已经被我从网络上删除了,看在可能是本文迄今为止唯一读者老田园的份上重新发布,方便老人查阅。

背包问题

n种物品,一个承重量为m的背包,每种物品最多只能拿一个或者不拿,且每个物品都有价值v[i]和重量w[i],问怎么拿使背包内物品价值最大。

定义dp[i][j]表示走到第i个物品,背包重量为j时的价值。

转移方程dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]] + v[i])

dp[i-1][j]表示不拿当前物品,背包重量为j时的价值

RMQ区间最值查询

RMQ区间最值查询,对于长度为n的数组A[]

RMQ(i,j),返回数组A区间[i , j]内的最大值或最小值。

(线段树也是可以的

ST算法:

O(nlogn)预处理,O(1)查询

kmp

KMP最小循环节、循环周期:

定理:假设S的长度为len则S存在最小循环节,对S构造next数组,循环节的长度Llen-next[len],子串为S[0…len-next[len]-1]。