图论
smiling~
努力会被看得到的
展开
-
ccf 2014-03-4 无线网络(spfa)
题外:现在真就只能做做模拟了,菜啊。参考博客:1 2ps: ccf官网这个题的数据确实水了。思路:在普通spfa的dis和vis数组上增加一维。dis[i][j]表示源点到i,经过了j个新增中转路由器的距离。(这个距离即一共经过了多少路由器),vis数组含义差不多,只不过是用来标记的。#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#incl原创 2021-04-04 01:30:54 · 202 阅读 · 0 评论 -
HihoCoder - 1828 Saving Tang Monk II(bfs+优先队列)
《Journey to the West》(also 《Monkey》) is one of the Four Great Classical Novels of Chinese literature. It was written by Wu Cheng’en during the Ming Dynasty. In this novel, Monkey King Sun Wukong, pig ...原创 2019-09-03 10:33:13 · 181 阅读 · 0 评论 -
HDU - 1428 漫步校园 (最短路+记忆化搜索)
LL最近沉迷于AC不能自拔,每天寝室、机房两点一线。由于长时间坐在电脑边,缺乏运动。他决定充分利用每次从寝室到机房的时间,在校园里散散步。整个HDU校园呈方形布局,可划分为n*n个小方格,代表各个区域。例如LL居住的18号宿舍位于校园的西北角,即方格(1,1)代表的地方,而机房所在的第三实验楼处于东南端的(n,n)。因有多条路线可以选择,LL希望每次的散步路线都不一样。另外,他考虑从A区域到B区域...原创 2019-08-26 10:37:34 · 216 阅读 · 0 评论 -
Acwing 845.八数码 (bfs)
在一个3×3的网格中,1~8这8个数字和一个“X”恰好不重不漏地分布在这3×3的网格中。例如:1 2 3X 4 67 5 8在游戏过程中,可以把“X”与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):1 2 34 5 67 8 X例如,示例中图形就可以通过让“X”先后与右、下、右三个方向的数字交换成功得到正确排列。...原创 2019-08-20 20:29:45 · 210 阅读 · 0 评论 -
蓝桥杯历届试题 调手表(bfs)
小明买了块高端大气上档次的电子手表,他正准备调时间呢。在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟。大家都知道,手表只有一个按钮可以把当前的数加一。在调分钟的时候,如果当前显示的数是 0 ,那么按一下按钮就会变成 1,再按一次变成 2 。如果当前的数是 n - 1,按一次后会变成 0 。作为强迫症患者,小明一定要把手表的时间调对。如果手表上的时间比当前时间多1,...原创 2019-05-18 15:48:06 · 900 阅读 · 0 评论 -
迷宫问题(bfs+记录路径) 两种模板
定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。Input一个5 × 5的二维数组,表示一个迷宫。数据保...原创 2019-03-23 20:33:49 · 453 阅读 · 0 评论 -
PAT 甲级 1021 Deepest Root (25 分)
题意:找到能让树的深度最深的结点,若不唯一,升序输出。如果给出的图不连通,输出联通块的个数。思路:并查集+求树的直径。求出树最深是多少,然后每个结点dfs一次,如果等于那个最深的深度, 如果等于那个最深的深度就输出。代码:include<iostream>#include<cstring>#include<cstdio>#include<al...原创 2019-11-08 19:15:31 · 184 阅读 · 0 评论 -
染色法判定二分图/匈牙利算法 ----模板
1.染色法判定二分图模板题: Acwing 860.染色法判定二分图#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int N = 2e5+10;int h[N],e[N],ne[N],idx,color[N];void init(){ ...原创 2019-08-31 22:22:24 · 158 阅读 · 0 评论 -
HDU Today HDU - 2112(dijkstra+map)
经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强。这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬浦镇陶姚村买了个房子,开始安度晚年了。这样住了一段时间,徐总对当地的交通还是不太了解。有时很郁闷,想去一个地方又不知道应该乘什么公交车,在什么地方转车,在什么地方下车(其实徐总自己有车,却一定要与民...原创 2019-07-28 20:54:27 · 163 阅读 · 0 评论 -
最小生成树模板(prim+kruskal)
1.prim算法(稠密图适用–O(n^2))#include<iostream>#include<cstring>#include<algorithm>using namespace std;#define inf 0x3f3f3f3f#define N 505int n,m;int mp[N][N];int dis[N],vis[N];in...原创 2019-08-01 11:20:50 · 1017 阅读 · 1 评论 -
昂贵的聘礼(dijkstra)
年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:“嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。“探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其他的东西,...原创 2019-08-01 09:56:55 · 316 阅读 · 0 评论 -
How Many Maos Does the Guanxi Worth(dijkstra)
“Guanxi” is a very important word in Chinese. It kind of means “relationship” or “contact”. Guanxi can be based on friendship, but also can be built on money. So Chinese often say “I don’t have one ma...原创 2019-07-31 12:05:13 · 98 阅读 · 0 评论 -
Caterpillar POJ - 3310(拓扑排序+求树的直径)
An undirected graph is called a caterpillar if it is connected, has no cycles, and there is a path in the graph where every node is either on this path or a neighbor of a node on the path. This path i...原创 2019-07-31 11:17:50 · 210 阅读 · 0 评论 -
蓝桥杯历届试题 发现环(拓扑排序)
问题描述 小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。为了恢复正常传输。小明需要找到所有在环路上的电脑,你能...原创 2019-05-13 15:50:50 · 656 阅读 · 1 评论 -
L3-005 垃圾箱分布(dijkstra算法/单源最短路)
大家倒垃圾的时候,都希望垃圾箱距离自己比较近,但是谁都不愿意守着垃圾箱住。所以垃圾箱的位置必须选在到所有居民点的最短距离最长的地方,同时还要保证每个居民点都在距离它一个不太远的范围内。现给定一个居民区的地图,以及若干垃圾箱的候选地点,请你推荐最合适的地点。如果解不唯一,则输出到所有居民点的平均距离最短的那个解。如果这样的解还是不唯一,则输出编号最小的地点。输入格式:输入第一行给出4个正整数:...原创 2019-05-31 23:30:21 · 228 阅读 · 0 评论 -
拓扑排序模板
自用模板0.0#include<iostream>#include<cstring>#include<algorithm>#include<queue>using namespace std;const int N = 1e5+10;int e[N],h[N],ne[N],idx;int d[N],q[N];int n,m;voi...原创 2019-07-29 19:22:37 · 87 阅读 · 1 评论 -
最短路模板整理(Dijkstra+Bellman-ford+spfa+Floyd)
最短路问题总览一、单源最短路1.所有边权都是正数(1)朴素dijkstra算法 (时间复杂度:O(n^2))(2)堆优化版dijkstra算法(时间复杂度:O(mlogn))2.存在负权边(1)Bellman-ford算法(时间复杂度:O(nm))(2)SPFA(时间复杂度:一般O(m),最坏O(nm) )二、多源最短路----- Floyd算法(O(n^3))注:上图来...原创 2019-07-30 00:16:23 · 288 阅读 · 1 评论 -
Wormholes POJ - 3259(spfa / Bellman-ford判断负环)
While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way path that delivers you to its destination at a time that i...原创 2019-07-30 11:20:02 · 160 阅读 · 0 评论 -
求树的直径(最长路)模板
自用模板0.0#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define inf 0x3f3f3f3fconst int N =1e5+10;int e[N],h[N],ne[N],w[N],idx;int vis[N];int n,m,ans,v...原创 2019-08-03 08:31:00 · 186 阅读 · 0 评论 -
Game on a Graph ZOJ - 4116 (思维)
题目链接:https://vjudge.net/problem/ZOJ-4116题目大意:给定一个n个点,m条边的无向连通图,有k个人(分别属于两个阵营)轮流取走一条边,若轮到某一个人操作的时候使得图不连通了,那么它所在的阵营输了,输出赢的阵营的编号。思路:连通图最少需要n-1条边,那么可取走的边数为m-n条,那么第m-n+1个人就输了,输出它的敌对阵营即可。(注意答案要模k)。。。我服...原创 2019-08-03 11:54:35 · 272 阅读 · 0 评论 -
Currency Exchange POJ - 1860 (spfa / bellman-ford判正环)
Several currency exchange points are working in our city. Let us suppose that each point specializes in two particular currencies and performs exchange operations only with these currencies. There can...原创 2019-07-31 09:58:17 · 130 阅读 · 0 评论 -
最短路 模板题(dijkstra)
给你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<=1000, 0<m<...原创 2019-03-23 22:03:59 · 513 阅读 · 0 评论