
图论
文章平均质量分 70
神探小小迪
回头看,呀!这代码是我以前写的啊,写的是啥啊~
展开
-
PTA L2-031 深入虎穴
L2-031深入虎穴(25分)著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报。已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门。每一扇门背后或者是一个房间,或者又有很多条路,同样是每条路通向一扇门…… 他的手里有一张表格,是其他间谍帮他收集到的情报,他们记下了每扇门的编号,以及这扇门背后的每一条通路所到达的门的编号。007 发现不存在两条路通...原创 2019-03-31 22:35:54 · 1477 阅读 · 0 评论 -
最大流【EK算法】HDU 1532模板题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532定义:网络:网络是一个有向带权图,包含一个源点和一个汇点,没有反向平行边。 网络流:网络流即网上的流,是定义在网络边集E上的一个非负函数flow={flow(u,v)}, flow(u,v)是边上的流量。 可行流:满足以下两个性质的网络流flow称为可行流。 容量约束:每条边的实际流...原创 2018-07-16 19:18:19 · 389 阅读 · 0 评论 -
HDU 1530 Maximum Clique【最大团问题】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1530Maximum CliqueProblem Description Given a graph G(V, E), a clique is a sub-graph g(v, e), so that for all vertex pairs v1, v2 in v, there exists an e...原创 2018-06-26 19:34:47 · 657 阅读 · 0 评论 -
HDU 2255 奔小康赚大钱【KM算法】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255奔小康赚大钱Problem Description传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子。这可是一件大事,关系到人民的住房问题啊。村里共有n间房间,刚好有n家老百姓,考虑到每家都要有房住(如果有老百姓没房子住的话,容易引起不安定因素),每家必须分配到一间房...原创 2018-06-24 15:21:06 · 303 阅读 · 0 评论 -
最小生成树【Kruskal】
来源:http://www.51nod.com/tutorial/course.html#!courseId=18Kruskal算法的高效实现需要一种称作并查集的结构。我们在这里步介绍并查集,只介绍Kruskal算法的基本思想和证明,实现留在以后讨论。Kruskal算法的过程:(1) 将全部边按照权值由小到大排序(2) 按顺序(边权由小到大的顺序)考虑每条边,只要这条边和我们已经选择的边不构成圈,...原创 2018-06-09 14:38:57 · 332 阅读 · 0 评论 -
POJ 3041Asteroids【最小点覆盖】
题目链接:http://poj.org/problem?id=3041 AsteroidsTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 25572 Accepted: 13814 DescriptionBessie wants to navigate her spaces...原创 2018-06-23 20:16:42 · 232 阅读 · 0 评论 -
HDU 2063-过山车【二分图最大匹配】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063过山车Problem DescriptionRPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XHD...原创 2018-06-23 17:37:00 · 148 阅读 · 0 评论 -
匈牙利算法【模板】
代码:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <vector>#include <set>#include <map>原创 2018-06-23 16:43:06 · 635 阅读 · 0 评论 -
poj 1780 Code【欧拉通路+非递归DFS】
CodeTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 2723 Accepted: 951DescriptionKEY Inc., the leading company in security hardware, has developed a new kind of safe. To unlock it, you don't...原创 2018-06-06 18:11:54 · 221 阅读 · 0 评论 -
hdu 1116【欧拉通路+并查集】
Play on WordsProblem DescriptionSome of the secret doors contain a very interesting word puzzle. The team of archaeologists has to solve it to open that doors. Because there is no other way to open th...原创 2018-06-05 21:36:54 · 232 阅读 · 0 评论 -
Ford-Fulkerson【一般增广 路算法】
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <queue>#include <stack>#include <set>原创 2018-08-03 16:27:37 · 347 阅读 · 0 评论 -
POJ 1149【建图+一般增广路Ford算法】
PIGSTime Limit: 1000MS Memory Limit: 10000K Total Submissions: 22760 Accepted: 10411 DescriptionMirko works on a pig farm that consists of M locked pig-houses and Mirko can't u...原创 2018-08-04 21:37:05 · 184 阅读 · 0 评论 -
POJ 1511【Invitation Cards】最短路+堆优化
题目链接:http://poj.org/problem?id=1511题目大意:求从起点到各个站点的最短路之和以及从各个站点回到起点的最短路之和。1、从起点到各个站点的最短路一遍Dijkstra+堆优化即可。2、从各个站点到起点的最短路应将各边反向然后转步骤1。数据结构:邻接表存储有向边(出边表):struct vNode{//定义表节点 int v,w;//以v为弧...原创 2018-07-31 20:29:27 · 254 阅读 · 0 评论 -
牛客练习赛27【C 水图 dfs求最长路】
链接:https://www.nowcoder.com/acm/contest/188/C来源:牛客网题目描述小w不会离散数学,所以她van的图论游戏是送分的小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度小w现在在点x上她想知道从点x出发经过每个点至少一次,最少需要走多少路输入描述:第一行两个整数 n,x,代表点数,和小w所处的位置第二...原创 2018-09-21 23:00:52 · 337 阅读 · 0 评论 -
CHOJ 2101可达性统计
描述给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。N,M≤30000。输入格式第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边。输出格式共N行,表示每个点能够到达的点的数量。样例输入10 103 82 32 55 95 92 33 94 82 104 9样例输出16332...原创 2018-09-07 15:56:40 · 1886 阅读 · 1 评论 -
树与图的广度优先遍历、拓扑排序
树与图的广度优先遍历:用一个队列来实现。起初,队列中仅包含一个起点,在遍历过程中,我们不断从队头取出一个节点 x ,对于 x 面对的多条分支,把沿着每条分支到达的下一个节点(如果未访问过)插入队尾,重复上述过程直至队列为空。void bfs(){ memset(d, 0, sizeof d); queue<int> q; q.push(1), d[1] =...原创 2018-09-07 11:00:59 · 1348 阅读 · 0 评论 -
树与图的深度优先遍历,树的DFS序、深度和重心
深度优先遍历:时间复杂度为 O(n+m)void dfs(int x){ v[x] = 1;// 记录点 x 已被访问过 for(int i = head[x]; i; i = next[i]) { int y = ver[i]; if(v[y]) continue;// 点 y 已经被访问过了 dfs(y); }}...原创 2018-09-06 22:33:09 · 1777 阅读 · 1 评论 -
数组模拟邻接表
邻接表可以看成“带有索引数组的多个数据链表”构成的结构集合。在这样的结构中,数据被分成若干类,每一类的数据构成一个链表。每一类还有一个代表元素,称为该类对应链表的“表头”。所有表头构成一个表头数组,作为一个可以随机访问的索引,从而可以通过表头数组定位到某一类数据对应的链表。在一个具有 n 个点, m 条边的有向图结构中,我们可以把每条边所属的类别定义为该边的起点标号。这样所有边被分成 n 类,...原创 2018-09-06 21:25:13 · 612 阅读 · 0 评论 -
匹配问题
1、完美匹配:对于一个图G与给定的一个匹配M,如果图G中不存在M的未盖点,则称匹配M为图G的的完美匹配。2、推论:设 G 中顶点个数为 n,且 G 中无孤立顶点,M 为 G 中的匹配,W 是 G中的边覆盖,则|M|≤|W|,|M|表示 M 中边的数目。当等号成立时, M 为 G 中完美匹配,W 为 G中最小边覆盖。3、二部图的完备匹配:设无向图 G(V, E)为二部图,它的两个顶点集合为 ...原创 2018-08-02 14:10:35 · 1082 阅读 · 0 评论 -
边覆盖集与边独立集(匹配)
1、覆盖与边覆盖集:设无向图为 G(V, E),边的集合 E*⊆E,若对于∀v∈V,∃e∈E*,使得:v与 e 相关联,则称 e 覆盖 v,并称 E*为边覆盖集(edge covering set,或简称边覆盖)。 通俗地讲,所谓边覆盖集 E*,就是 G 中所有的顶点都是 E*中某条边的邻接顶点(边覆盖顶点)。2、极小边覆盖:若边覆盖 E*的任何真子集都不是边覆盖, 则称 E*是极小...原创 2018-08-02 11:00:39 · 2633 阅读 · 0 评论 -
点支配集、点覆盖集、点独立集
1、支配与支配集:设无向图为 G(V, E),顶点集合 V*⊆V,若对于∀v∈(V–V*),∃u∈V*,使得(u, v)∈E,则称 u 支配 v,并称 V*为 G 的一个点支配集(简称支配集)。 通俗地讲,所谓点支配集,就是 V*中的顶点能“支配”V–V*中的每个顶点,即 V–V*中的每个顶点都是 V*中某个顶点的邻接顶点,或者说 V 中的顶点要么是 V*集合中的元素、要么与 V*中的...原创 2018-08-02 10:22:23 · 3642 阅读 · 0 评论 -
poj 3692 【Kingdergarten】 最大独立集
KindergartenTime Limit: 2000MS Memory Limit: 65536K Total Submissions: 7637 Accepted: 3768 DescriptionIn a kindergarten, there are a lot of kids. All girls of the kids know eac...原创 2018-08-01 20:51:34 · 363 阅读 · 0 评论 -
P1330 封锁阳光大学【二分染色】
题目描述曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街。河蟹看到欢快的曹,感到不爽。河蟹决定封锁阳光大学,不让曹刷街。阳光大学的校园是一张由N个点构成的无向图,N个点之间由M条道路连接。每只河蟹可以对一个点进行封锁,当某个点被封锁后,与这个点相连的道路就被封锁了,曹就无法在与这些道路上刷街了。非常悲剧的一点是,河蟹是一种不和谐的生物,当两只河蟹封锁了相邻的两个点时,他们会发生...原创 2018-05-23 17:25:40 · 292 阅读 · 0 评论 -
POJ 1300 Door Man【欧拉回路】
题目链接题目描述:你是一座大庄园的管家。庄园有很多房间,编号为0、1、2、3,...。你的主人是一个心不在焉的人,经常沿着走廊随意地把房间的门打开。多年来,你掌握了一个诀窍:沿着一个通道,穿过这些大房间,并把房门关上。你的问题是能否找到一条路径经过所有开着门的房间,并使得:1) 通过门后立即把门关上;2) 关上了的门不再打开;3) 最后回到你自己的房间(房间0),并且所有的门都已经关闭了。在本题中...原创 2018-06-03 17:23:58 · 224 阅读 · 0 评论 -
DFS【求连通块的数目】
标题:细胞标签:搜索详情:一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。如阵列: 0234500067103456050020456006710000000089有4个细胞输入格式:整数m,n(m行,n列)矩阵。输出格式:细胞的个数。样例:输入4 1002345000671034560500204560067...原创 2018-05-09 20:51:17 · 1673 阅读 · 0 评论 -
BFS求最短路【最少转机】
标题:最少转机标签:搜索详情:小哼和小哈一同坐飞机去旅游,他们现在位于1号城市,目标是5号城市,可是1号城市并没有到5号城市的直航。不过小哼已经收集了很多航班的信息,现在小哼希望找到一种乘坐方式,使得转机的次数最少,如何解决呢?输入格式:第一行的有两个整数n m s e,n表示有n个城市(城市编号为1~n),m表示有m条航线,s表示起点城市,e表示目标城市。接下来m行每行是一条类似“a b”这样...原创 2018-05-09 19:50:36 · 922 阅读 · 0 评论 -
DFS求最短路
题目:城市地图输入第一行表示有n个城市,m条马路。接下来m行是类似于a b c这样的数据,表示有一条路可以从城市a到b,且路程为c公里。需要注意的是这里的路都是单向的,也就是有向图。求出1号城市到n号城市的最短距离。分析:求最短路可以用DFS,BFS,Dijksrta,Floyed 等算法求解。目前在看图的遍历,就用DFS了。。。代码:#include <iostream>#incl...原创 2018-05-09 19:20:32 · 2165 阅读 · 0 评论 -
HDU1285-确定比赛名次(拓扑排序)
确定比赛名次Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 32981 Accepted Submission(s): 12935Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2...原创 2018-05-03 10:41:25 · 174 阅读 · 0 评论 -
BFS【啊哈磊-抓住那头牛】
标题:抓住那头牛标签:搜索广度优先搜索详情:农民约翰的农场有一头逃亡了。现在已知的牛的位置并立即想抓住她。约翰从的起始点为S,牛目前在点K。农民约翰有两种行进方式:步行和传送。*走:约翰可以从任何点X, 走到X-1或 X+1,耗时一分钟。*传送:约翰可以从任何点的X,传送到点2X,耗时一分钟。输入格式:只有一行包含两个整数S和K输出格式:输出一个整数,表示农民约翰需要在几分钟内抓逃犯牛。限制:0&...原创 2018-05-09 16:58:35 · 395 阅读 · 0 评论 -
BFS【模板】-解救小哈
标题:解救小哈标签:搜索详情:有一天,小哈一个去玩迷宫。但是方向感很不好的小哈很快就迷路了。小哼得知后便立即去解救无助的小哈。小哼当然是有备而来,已经弄清楚了迷宫地图,现在小哼要以最快速度去解救小哈。问题就此开始了…… 迷宫由n行m列的单元格组成,每个单元格要么是空地,要么是障碍物。你的任务是帮助小哼找到一条从迷宫的起点到小哈所在位置的最短路径,注意障碍物是不能走的,当然也不能走到迷宫之外。n和...原创 2018-05-09 15:27:07 · 276 阅读 · 0 评论 -
DFS【模板】 宝岛探险
标题:宝岛探险标签:搜索深度优先搜索广度优先搜索详情:小哼通过秘密方法得到一张不完整的钓鱼岛航拍地图。钓鱼岛由一个主岛和一些附属岛屿组成,小哼决定去钓鱼岛探险。下面这个10*10的二维矩阵就是钓鱼岛的航拍地图。图中数字表示海拔,0表示海洋,1~9都表示陆地。小哼的飞机将会降落在(6,8)处,现在需要计算出小哼降落所在岛的面积(即有多少个格子)。注意此处我们把与小哼降落点上下左右相链接的陆地均视为同...原创 2018-05-08 21:16:37 · 428 阅读 · 0 评论 -
DFS【模板】找到最大岛
标题:找到最大岛标签:搜索深度优先搜索广度优先搜索详情:哼通过秘密方法得到一张不完整的钓鱼岛航拍地图。钓鱼岛由一个主岛和一些附属岛屿组成,小哼决定去钓鱼岛探险。下面这个10*10的二维矩阵就是钓鱼岛的航拍地图。图中数字表示海拔,0表示海洋,1~9都表示陆地。现在需要计算出最大岛的面积(即有多少个格子)。121000002330201210124010123201320001240000000015...原创 2018-05-08 21:10:47 · 533 阅读 · 0 评论 -
HDU3790最短路径问题
Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 Input 输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。(1<n&l...原创 2018-04-19 20:34:46 · 171 阅读 · 0 评论 -
P3367 【模板】并查集
题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入输出格式输入格式:第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将Xi与Yi所在的集合合并当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N输出格式:如上,对于每一个Zi=2的操作,都有一行输出,每行包含一个大写字母,为Y或者N输入输出样例输入样例#...原创 2018-05-04 08:53:12 · 149 阅读 · 0 评论 -
HDU 1241【DFS/BFS求连通块数目】
Oil DepositsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 39624 Accepted Submission(s): 22999Problem Description The GeoSurvComp geologic s...原创 2018-05-10 20:56:57 · 329 阅读 · 0 评论 -
HDU 1242【DFS/BFS】
RescueTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 35096 Accepted Submission(s): 12203Problem Description Angel was caught by the MOLIGPY!...原创 2018-05-10 23:38:23 · 234 阅读 · 0 评论 -
邻接表
问题描述:用邻接表存储有向图,并输出各顶点的出入和入度。输入描述:输入文件中包含多个测试数据,每个测试数据描述了一个无权有向图。每个测试数据的第一行为两个正整数n 和m,1≤ n ≤ 100,1≤ m ≤ 500,分别表示该有向图的顶点数目和边数,顶点的序号从1 开始计起。接下来有m 行,每行为两个正整数,用空格隔开,分别表示一条边的起点和终点。每条边出现一次且仅一次,图中不存在自身环和重边。输入...原创 2018-05-22 19:23:49 · 11053 阅读 · 1 评论 -
P3388 【模板】割点(割顶)
题目背景割点题目描述给出一个n个点,m条边的无向图,求图的割点。输入输出格式输入格式:第一行输入n,m下面m行每行输入x,y表示x到y有一条边输出格式:第一行输出割点个数第二行按照节点编号从小到大输出节点,用空格隔开输入输出样例输入样例#1: 复制6 71 21 31 42 53 54 55 6输出样例#1: 复制1 5说明:n,m<=100000题解:代码:#include...原创 2018-05-26 19:04:35 · 484 阅读 · 0 评论 -
PAT甲级 1003 【Emergency】
1003 Emergency (25)(25 分)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue t...原创 2018-06-02 21:18:11 · 173 阅读 · 0 评论 -
poj 1144 Network【图的割点】模板
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <vector>#include <set>#include <map>u原创 2018-05-25 21:16:38 · 207 阅读 · 0 评论