上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页
摘要: 定义 下面讨论的图 \(G\) 均不存在孤立顶点(度数为0的顶点)。 欧拉回路和欧拉通路 通过图中所有边恰好一次的回路称为欧拉回路。 通过图中所有边恰好一次的通路称为欧拉通路。 欧拉图和半欧拉图 具有欧拉回路的无向图或有向图称为欧拉图。 具有欧拉通路但不具有欧拉回路的无向图或有向图称为半欧拉图。 若 阅读全文
posted @ 2021-01-27 15:43 purinliang 阅读(670) 评论(0) 推荐(0) 编辑
摘要: 设 \(f[u]\) 为以1为根时,u节点的子树中的答案。 设 \(g[u]\) 为以1为根时,u节点向父亲p方向看,包括父亲p但不包括u节点的子树中的答案。 换根dp的时候一定要画一张图,简单说就是画一个众字形的图,v节点在最左下角,其父亲是u节点,父亲的父亲是“众”字最顶端的节点,那么最上面的人 阅读全文
posted @ 2021-01-27 10:26 purinliang 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 01背包 设 \(dp[i][j]\) 为处理完前 i 个物品,背包使用容量为 j 的最大价值。 for(int i = 1; i <= n; ++i) { for(int j = w[i]; j <= W; ++j) dp[i][j] = max(dp[i][j], dp[i - 1][j - w 阅读全文
posted @ 2021-01-27 10:09 purinliang 阅读(67) 评论(0) 推荐(0) 编辑
摘要: struct InverseMatrix { static const int MOD = 1e9 + 7; static const int MAXN = 400 + 10; int n; int A[MAXN][MAXN]; int B[MAXN][MAXN]; void Init(int n) 阅读全文
posted @ 2021-01-26 23:48 purinliang 阅读(219) 评论(0) 推荐(0) 编辑
摘要: struct Matrix { static const int MOD = 1e9 + 7; static const int MAXK = 400 + 10; int k, A[MAXK][MAXK]; void Init(int k) { this->k = k; memset(A, 0, s 阅读全文
posted @ 2021-01-26 22:33 purinliang 阅读(99) 评论(0) 推荐(0) 编辑
摘要: Burnside引理 设 \(A\) 和 \(B\) 为有限集合, \(X=B^A\) 表示所有从 \(B\) 到 \(A\) 的映射。 \(G\) 是 \(A\) 上的置换群, \(X/G\) 表示 \(G\) 作用在 \(X\) 上产生的所有等价类的集合(若 \(X\) 中的两个映射经过 \(G 阅读全文
posted @ 2021-01-26 12:49 purinliang 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 统计从S点到T点的路径上,哪些点是必经点,哪些边是必经边。 对有向图可以使用支配树,对于有向无环图也可以用计数哈希统计 \(f_S(i)\) 和 \(f_T(i)\) 表示从S到i和从i到T的路径数目。 阅读全文
posted @ 2021-01-25 00:52 purinliang 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 对于两个点,若从原图中删除其中除这两个点之外的任意一个点,都不能使得这两点不连通,则称这两点是点双连通。 点双连通不具有传递性,例如一个中国结一样的联排菱形。 DFS:无向图DFS,只有两种边,树边和非树边。由于DFS的性质,所以非树边一定是DFS树上的一对祖先-后代(未必不是父子,因为可能有多重边 阅读全文
posted @ 2021-01-25 00:46 purinliang 阅读(191) 评论(0) 推荐(0) 编辑
摘要: struct CutvertexBridge { static const int MAXN = 2e5 + 10; static const int MAXM = 2e6 + 10; int n, m, t; struct Edge { int v, nxt; } e[MAXM * 2]; int 阅读全文
posted @ 2021-01-24 20:47 purinliang 阅读(125) 评论(0) 推荐(0) 编辑
摘要: struct Splay { static const int MAXN = 3e6 + 10; int top, root, ch[MAXN][2], pa[MAXN]; int val[MAXN], cnt[MAXN], siz[MAXN]; void _PushUp(int x) { siz[ 阅读全文
posted @ 2021-01-24 18:06 purinliang 阅读(59) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页