
基础理论知识
少侠,慢点走
与其在失败后后悔,不如在失败前成功
展开
-
矩阵快速幂
链接链接原创 2019-05-13 21:02:51 · 100 阅读 · 0 评论 -
树的直径
树的直径给定一棵树,树中每条边都有一个权值,树中两点之间的距离定义为连接两点的路径边权之和。树中最远的两个节点之间的距离被称为树的直径,连接这两点的路径被称为树的最长链。后者通常也可称为直径,即直径是一个数值概念,也可代指一条路径 树的直径通常有两种求法,时间复杂度均为O(n)。我们假设树以N个点N-1条边的无向图形式给出,并存储在邻接表中。树形DP求树的直径设1号节点为根,“N个点N...原创 2019-05-24 22:21:16 · 486 阅读 · 0 评论 -
背包九讲问题
01背包#include<bits/stdc++.h>using namespace std;int dp[1001][1001];int v[1010],w[1010];int main(){ int n , m; cin >> n >> m; dp[0][0] = 0; for(int i = 1; i &...原创 2019-05-22 00:39:39 · 219 阅读 · 0 评论 -
二分图匹配匈牙利算法
这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:把一个图的顶点划分为两个不...原创 2019-06-05 21:06:45 · 299 阅读 · 0 评论 -
拓扑排序
在一个有向图中,对所有的节点进行排序,要求没有一个节点指向它前面的节点。先统计所有节点的入度,对于入度为0的节点就可以分离出来,然后把这个节点指向的节点的入度减一。一直做改操作,直到所有的节点都被分离出来。如果最后不存在入度为0的节点,那就说明有环,不存在拓扑排序,也就是很多题目的无解的情况。下面是算法的演示过程。模板vector//重环无影响const int maxn = 1...原创 2019-06-05 01:25:06 · 406 阅读 · 1 评论