![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM之图论
文章平均质量分 57
末尾带空格的bearBaby
这个作者很懒,什么都没留下…
展开
-
ACM之图论基本算法详解
图论基本算法DFS,BFS 两个生成树prim + Kruskal 4个最短路径Dijkstra+Floyd+Bellman-Ford+SPFADFS&BFSDFS——遍历所有解 模板:void DFS( Point P ){ for(所有P的邻接点K){ if(K未被访问){ ...原创 2018-04-27 13:12:49 · 2756 阅读 · 0 评论 -
牛客练习赛30 C-小K的诱惑
欸,好吧,还是太菜了题目中文题,就不解释了!!!解题关键,要抓住这是一颗树,也就是说任意两点之间的距离是唯一的。要满足题目的dist(i,j) = dist(i,k)=dist(j,k) ,而且dist(i,j)的值只有可能是0,或1。那么我们可以先任取一点,假设就取节点1吧,然后求出其他节点到节点1的距离为偶数的有几个(假设有x个),为奇数的有几个(假设有y个)。要使得满足dist(i...原创 2018-11-04 13:57:06 · 285 阅读 · 0 评论 -
补题:2018ACM-ICPC北京网络赛 题A-Saving Tang Monk II
题目链接:Saving Tang Monk II题目大意:给你一个n*m的图,你要从S走到T,每走一步都要花费1的时间,现在有的房间会有不同,’.'代表空房间,走入后不会发生什么,'B’代表有氧气瓶的房间,每走入一次就能得到一罐氧气瓶(但持续呆在里面不会得到,氧气瓶的携带上限是5个),‘P’代表有加速药丸的房间,每走入一次都代表可以减少1的时间(携带无上限,其实可以直接认为是走进这个房间不消...原创 2018-09-25 23:14:53 · 405 阅读 · 0 评论 -
201703-4 ccf 地铁修建 (dijstra的灵活运用)
题目链接: 地铁修建题目大意: 中文题,不解释啊啊!!!解题思路: 题目要求使得完工时间最短,因为可以同时开工,所以抽象出来就是。从1到n的多条路线中,选一条路径所经过的边中最大的边权最小(看样例就可以理解这句话了)。 于是我们可以利用求最短路的法子来求这个最大边权最小。之前求最短路是记录1到当前节点的最短路,那我是不是可以改变一下松弛条件,dist[i]记录的是1节点到当前节点i...原创 2018-09-11 09:41:09 · 940 阅读 · 0 评论 -
201709-4 通信网络(dfs的灵活运用)
题目链接: 通信网络题目大意: 中文题,不解释!!!解题思路: 利用dfs从i节点出发,深度遍历与其相连节点,遍历过程中,经过的节点就和i建立一条边。最后看看该节点是否和其余的节点都建立了边的关系,是的话,答案+1其实这个我们可以想象成,水流,dfs过程中,把源头带进去dfs,每经过一个节点,就让他和源头建立边,这样我们就知道我们的水可以流去哪些地方了,很巧妙的做法!!!这又...原创 2018-09-11 09:15:15 · 946 阅读 · 0 评论 -
201604-4 ccf 游戏 (三维记录 + BFS)
题目链接: 游戏题目大意: 中文题啊!!!解题思路: 真的是让我学到了的一题!!! 一开始看到题,二话不说上了普通的无访问标记式的bfs,结果TLE了,只得了20分,想想确实会超时。 于是想了一些剪枝方法,还是不行。因为突然发现好像还可能需要走回去,才会有最优解。于是冥思苦想,无果。决定上网看看各路神仙写法!!! 找到一个觉得想法特别清奇的,就是用思维数组标记访问,比普通vis...原创 2018-09-06 10:50:10 · 275 阅读 · 0 评论 -
201512-4 ccf 送货 (欧拉路径+神奇的最小字典序)
题目链接: 送货题目大意: 中文题,不解释 不过感觉这题ccf上的测试有问题,好多代码都是80分,然后RE了!! 出题越来越有水平了啊!!弱鸡瑟瑟发抖解题思路: 当然要先判断图是否存在欧拉路径了。 对于无向图,判断是否存在欧拉路径,首先肯定图要是连通图,其次每个点的数必须为偶数或者恰好有两个点的度数为奇数(就是起始点和终点)。然后如果题目没有要求最小字典序路径的话,直接用f...原创 2018-09-03 22:03:09 · 542 阅读 · 0 评论 -
201609-4 ccf 交通规划(dijstra(堆优化))
题目链接: 交通规划题目大意: 中文题,不解释!!!解题思路: 题目要求我们要满足到节点1的最短距离不变,还要使总的经过的路径长度最小。 那么在保证最短路径不变的情况下,如何保证经过路径长度最小呢?由案例可知道,只有当某个节点有多条路到节点1的最短路都一样长时,才会使答案会有不同。 那么要使经过的总路径最短,换一个想法,是不是就是使得重复走的路径最大呢?比如案例中5比4大,所...原创 2018-09-07 23:49:46 · 626 阅读 · 0 评论 -
201509-4 ccf 高速公路 (强连通分量 tarjan算法)
题目链接: 高速公路题目大意: 中文题,不解释解题思路: 抽象出来,其实就是求强连通分量,求出每个强连通分量的点的个数后,点对的个数就是C(强连通分量点的个数,2)(C是组合数学的组合符号)。板子题,多希望每年都是板子题2333,祈祷18年AC代码:#include <iostream>#include <cstdio>#include <...原创 2018-09-01 11:00:13 · 260 阅读 · 0 评论 -
201412-4 ccf 最优灌溉(最小生成树)
题目链接: 最优灌溉题目大意: 中文题目,不解释23333解题思路: 根据题目要求,所有麦田都要被灌溉,且使花费最小,抽象出来就是求无向带权图的MST(即最小生成树)。 由于点少边多,属于稠密图,选择prim()算法,复杂度为O(n^2),n为点数,另一个算法复杂度适合简单图,复杂度为O(e*log(2e)),e为边数。依次直接套prim算法板子就好了啊!! 不过我自己用优先...原创 2018-08-28 16:04:21 · 879 阅读 · 0 评论 -
补题:HOJ暑期训练第五场:Illumination(hoj-14156) (2-sat问题)
题目链接: Illumination题目大意: 在一个n*n的网格中,给你l盏灯,灯可以横着照亮2r+1长的范围,也可以竖着照,但是要求网格上的所有交点都需要满足不能同时被同一行或者同一列两个灯照到(如果一个灯来自列,另一个灯来自行,是允许的)。现在给出灯的坐标,问你可否找到一种方案,使得满足上述要求解题思路: 我们可以把灯横着放和竖着放当作两种状态,假设横着放为1,竖着放为0,则可...原创 2018-08-19 21:18:04 · 163 阅读 · 0 评论 -
CCF201403-4:无线网络(建图+bfs)
题目链接: 无线网络题目大意: 中文题大概不用翻译吧!抽象出模型大概就是给你n个点(点分两种点,原来就有的点,可添加的点,对应题目),然后好多边(如果两个点之间的距离不超过r我们就建立一条边),要求找出点1经过最少几个点就可以到达点2。解题思路:一、建立模型读完题,感觉像是几何题,但是细想,当作几何来做的话,并不好下手。通过题目给定的条件,两点距离不超过r就可以建立连接,我们可...原创 2018-08-14 12:50:07 · 400 阅读 · 0 评论 -
POJ3020 最小边覆盖(匈牙利算法)
题目链接: POJ3020题目大意:在一个网格中,给定特殊点的位置,问你最少需要多少个信号塔(只能上下左右选择其中一个分析覆盖两个特殊点)才能覆盖所有的特殊点。解题思路: 一开始博主看到这题,觉得一发遍历就可以得出答案,接过提交WA了,后面才想到如果出现这样的情况 ,遍历就是错误的。遍历需要3个信号塔覆盖,而正确应该是2个信号塔就可以覆盖。因此,毕竟知道是二分图匹配专题,所以...原创 2018-08-10 19:06:57 · 991 阅读 · 0 评论 -
最简单,详细的tarjan算法讲解
学习强连通分量缩点时不小心找到的,发现真的不错!!! tarjan算法,一个关于 图的联通性的神奇算法。基于DFS(迪法师)算法,深度优先搜索一张有向图。!注意!是有向图。根据树,堆栈,打标记等种种神(che)奇(dan)方法来完成剖析一个图的工作。而图的联通性,就是任督二脉通不通。。的问题。 了解tarjan算法之前你需要知道: 强连通,强连通图,强连通分量,解答树(解答树只是一种形式。了...转载 2018-06-12 19:29:21 · 1494 阅读 · 0 评论 -
匈牙利算法+最小点覆盖最佳入门题 UVA-11419
题目链接SAM I AM题目大意: 在给定r*c的网格中,给出敌人在网格里的位置,你有一个武器,一发炮弹可以打死一行或一列的所有敌人。求出最少的炮弹数可以把所有敌人干掉,并且输出每次发射炮弹的位置题解: 这个题典型符合二分图最大匹配问题,以网格的行作为x,列作为y,敌人的位置作为边(如敌人位置为(1,2),则x中1与y中2应该连一条边)。接着用匈牙利算法最大匹配数M,即使用的最...原创 2018-05-24 00:51:02 · 881 阅读 · 0 评论 -
二分图最小点覆盖König定理的简单证明
König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边。 小白的我参考了好多网上的证明,迷迷糊糊算是明白了,决定从大牛手中的证明,加入自己的一些可以让人更加明白的见解!!! 假如我们已经通过匈牙利算法求出了最...原创 2018-05-23 10:40:36 · 1263 阅读 · 0 评论 -
差分约束系统(例题:ccf-再卖菜)
一、差分约束系统是啥?差分约束系统(system of difference constraints),是求解关于一组变数的特殊不等式组之方法。如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m]),则称其为差分约束系统(system of difference constraints)。亦即,差分约束系统是求解关于一组变量的...转载 2018-12-12 00:21:33 · 772 阅读 · 3 评论