- 博客(14)
- 收藏
- 关注
原创 二分图详解(匈牙利算法)+代码模板
转自:https://blog.csdn.net/Kirito_j/article/details/52166566二分图的最大匹配、完美匹配和匈牙利算法2013-08-01Algorithms二分图匹配,图论,算法这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching)...
2020-09-21 22:57:38
1181
原创 深度优先搜索_POJ1321_棋盘问题
http://poj.org/problem?id=1321用两个组数分别记录被占用的行和列,加速(暴力)搜索过程#include <iostream>using namespace std;char chessboard[10][10];int row[10];int col[10];int n, k;int sum;void input() { mem...
2019-06-04 16:13:52
251
原创 POJ2513(欧拉路_trie树_并查集)
参考博客:https://blog.csdn.net/lyy289065406/article/details/6647445大致题意:给定一些木棒,木棒两端都涂上颜色,求是否能将木棒首尾相接,连成一条直线,要求不同木棒相接的一边必须是相同颜色的解题思路:相同的颜色看作一个结点,木棒看作边,是否可以“一笔画”经过图中每个点,以及经过每条边一次。无向图中存在欧拉路充要条件:图...
2019-06-01 10:32:58
259
原创 STL常用函数(在更)
1. priority_queue#include <queue>默认大根堆!如果创建小根堆需要#include <functional> 类库priority_queue<int, vector<int>, greater<int> > que1; //functional 头文件自带的 (greater),小根堆pri...
2019-05-31 14:47:48
150
原创 B树和B+树
一、B树和B+树的区别:B+树和B树相比,主要的不同点在以下3项:所有关键码都存放在叶节点中,上层的非叶节点的关键码是其子树中最小(或最大)关键码的复写 叶节点包含了全部关键码及指向相应数据记录存放地址的指针,且叶节点本身按关键码从小到大顺序连接。如果按下层结点“最小关键码复写”原则,则树中每个非叶结点中有 m 棵子树必有 m - 1 个关键码;如果按下层结点“最大关键码复写”原则,则树...
2019-05-29 16:07:34
23667
2
原创 POJ3020_二分图最大匹配(匈牙利算法变型)_Antenna Placement
原题:http://poj.org/problem?id=3020题目大意:有四种天线,分别可以朝四个方向覆盖一个城镇(place of interest)(可以看成一个天线可以覆盖两个城镇),给出一张图,星号代表城镇,空格代表空地,问最少需要多少天线可以覆盖所有的城镇。思路:node标记点并且给城镇编号,edge标识出城镇与城镇的相邻关系,构建一个无向图。其中,点代表城镇,边代表...
2019-05-25 17:02:36
176
转载 拓扑排序-POJ1094-Sorting It All Out
转载于:http://www.cppblog.com/infinity/archive/2008/11/06/66086.html每次读入一对关后,做一次floyd, 计算传递闭包.然后判环,其实很简单,就是看有没有点i的map[i][i]=1;有就证明有环!如果有环就矛盾了。如果无环再判断是否能确定关系,(注意每次都把出入度数组清零!)计算每个点的出度+入度是否=n-1;如果所有点都...
2019-05-24 22:58:53
112
转载 Kruskal(最小生成树,稀疏图)
每次选权值最小的边,如果构成环,则舍弃,选择次小的,直到所有的点都包含在生成树中。图解:https://blog.csdn.net/qq_41754350/article/details/81460643#include <iostream>#include <algorithm>using namespace std;const int MAXN = 5...
2019-05-23 20:15:48
932
原创 Prim算法(最小生成树)
参考链接:https://www.cnblogs.com/nannanITeye/p/3446424.htmlprim算法实现图的最小生成树,假设n个顶点,m条边。适合稠密图,其时间复杂度为O(n^2),与边的数目无关,而kruskal算法的时间复杂为O(eloge),和边数有关,适合稀疏图。算法思路:从某个顶点开始,假设v0,此时v0属于最小生成树节点中的一个元素,假设U为已经确...
2019-05-15 17:08:57
310
原创 Bellman-ford算法(poj3259 Wormholes)
Bellman-ford算法和详解http://www.wutianqi.com/blog/1912.htmlpoj3295t译文:农夫约翰在探索他的许多农场,发现了一些惊人的虫洞。虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的前达到目的地!他的N(1≤N≤500)个农场被编号为1..N,之间有M(1≤M≤2500)条路径,W(1≤W≤200)个虫洞。作为一个狂热的时间旅行FJ...
2019-05-10 20:24:51
153
原创 Dijkstra(单源最短路径)
Dijkstra的主要特点是以起始点为中心向外层层拓展(广度优先搜索思想),直到拓展到终点为止。用二维数组edge表示顶点之间的关系,dis数组表示源点到其余各点的距离,book数组表示dis对应的距离是否是最短距离。dis数组初始化为【0,2,6,4】,book为【1,0,0,0】既然是求点1到其余各点的距离,那么,就找一个离点1最近的点。通过dis数组可知,为点2,这个图...
2019-05-09 22:29:30
41126
5
转载 Floyd(最短路径)-傻子也能看明白的弗洛伊德算法(转)
转载自:https://www.cnblogs.com/wangyuliang/p/9216365.html暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程。上图中有4个城市8条公路,公路上的数字表示这条公路的长短。请注意这些公路是单向的。我们现在需要求任意两个城市之间的最...
2019-05-09 19:34:01
1535
1
原创 C++中字符读入函数cin、cin.getline()等
cin cin.get() cin.getline() getline()1. cin>>读入与声明变量匹配的字符,数字,字符串等。过滤掉不可见字符(回车、tab、空格等)输入字符串时,遇到上述不可见字符都会结束输入。输入char数组时,自动在最后加上结束符'\0'。char a[10] = {};a[4] = '7';a[5] = '8';a[6] = '9'...
2019-05-09 11:54:11
393
原创 模拟_poj1573_Robot Motion
http://poj.org/problem?id=1573#include <iostream>using namespace std;/*一个容易被忽略的test case2 2 1SWEN正确输出:0 step(s) before a loop of 4 step(s)一个数组存储命令Grid另一个数组存储走过的步数,出界则直接输出num,遇到循环则...
2019-05-08 17:28:07
87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人