常见算法 算法与数据结构是面试考察的重中之重,也是日后刷题时需要着重训练的部分。 简单的总结一下,大约有这些内容: 算法 - Algorithms 1、排序算法:快速排序、归并排序、计数排序2、搜索算法:回溯、递归、剪枝技巧3、图论:最短路、最小生成树、网络流建模4、动态规划:背包问题、最长子序列、 ...
分类:
编程语言 时间:
2021-06-22 18:19:06
阅读次数:
0
思路: 整个图可以看作是一个“环”和“挂”在上面的若干棵树组成的。首先找到这个“环”,然后分别计算上面每棵树包含的节点数,再计算同一棵树内及不同的树之间的路径数即可。可以使用图论算法也可以不使用。参考了https://codeforces.com/blog/entry/84984和https://w ...
分类:
其他好文 时间:
2021-06-08 22:39:19
阅读次数:
0
思路: 图论。参考了https://codeforces.com/blog/entry/71080。 实现: 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const ll INF = 0x3f3 ...
分类:
其他好文 时间:
2021-05-24 08:39:17
阅读次数:
0
「图论」第4章 强连通分量课堂过关 A. 【例题1】有向图缩点 题目 代码 #include <iostream> #include <cstdio> #include <cstring> #include <queue> using namespace std; #define N 10010 # ...
分类:
其他好文 时间:
2021-05-23 23:52:43
阅读次数:
0
「图论」第2章 最小生成树课堂过关 A. 【例题1】繁忙都市 题目 代码 prim #include <iostream> #include <cstdio> #include <cstring> using namespace std; #define N 310 #define M 200010 ...
分类:
其他好文 时间:
2021-04-19 16:02:22
阅读次数:
0
图论相关性质和结论整理 树的直径相关 边权非负时,两端点必为叶子节点。 对于两棵树,第一棵树的直径端点为 \(u_1,v_1\) ,第二棵的为 \(u_2,v_2\) ,将两棵树用一条边合并,新树的直径的端点必为上述四个端点中的两个。 若在一棵树的叶子结点上新接一个节点,直径最多会改变一个端点。 一 ...
分类:
其他好文 时间:
2021-04-14 12:09:18
阅读次数:
0
二分图就是可以把所有点划分到两边去,使得所有边都是在集合之间的,而集合内部没有边。如下图: 1.1 染色法 时间复杂度:O(n+m) 用来判断一个图是不是二分图。染色法就是一个很简单的DFS。 图论的一个性质:一个图是二分图,当且仅当这个图可以被染色。 一个图是二分图,当且仅当图中不含奇数环。环是从 ...
分类:
其他好文 时间:
2021-04-06 14:32:49
阅读次数:
0
图论最短路:Floyd 多源最短路的处理方法,主要思想为dp; 时间复杂度O(n^3); a[i][j]:邻接矩阵储存图; dp[i][j]:从i点到j点的最短距离; 转移方程: 选取k点,dp[i][j]=min(dp[i][k]+dp[k][j],dp[i][j]); 直接贴核心代码: 1 fo ...
分类:
其他好文 时间:
2021-03-08 14:05:48
阅读次数:
0
使用二维数组邻接矩阵储存图 无向图: 图G 定义图G[101][101],G[i][j]的值表示从结点vi到vj是否有边或弧,若有,取值为1或权值,若无,则取值为0或∞。以下是图G用邻接矩阵表示的列表: 结点 A B C D A 0 1 1 1 B 1 0 0 1 C 1 0 0 1 D 1 1 1 ...
分类:
编程语言 时间:
2021-03-08 13:49:48
阅读次数:
0
概念: 二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 是不是有些抽象? 整点直观的: 如果一 ...
分类:
其他好文 时间:
2021-02-08 11:41:56
阅读次数:
0