![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
D.Fu
试问岭南应不好,却道此心安处是吾乡
展开
-
迷宫问题 POJ 3984 栈和bfs
题目大意是,给你一个二维数组,5*5的,这个图中有墙,现在让你找出从左上角到右下角的最短路径,并把路径输出; 分析,其实这道题的难点只有一个,就是如何把最短路径按顺序输出,找到最短路径其实只需要bfs就好我的做法是,使用一个逆向的方向数组,和一个栈比如bfs的方向数组是{1,0},{-1,0},{0,1},{0,-1} 那么逆向数组依次就是{-1,0},{1,0},{0,-1},...原创 2018-08-01 22:48:28 · 161 阅读 · 0 评论 -
hdu 4857 反向拓扑模板题,入门
之前写过的博客,今天回头看时,发现格式好乱,重新写一下。 ---------------------------------------分析首先先处理特殊关系,对于有要求的数字,在他们俩之间建立一条边,a->b 同时b的入度++,表示b的限制条件增加1.那么在处理时,用一个优先队列按照greater的顺序push,(push入度为0)那么这道题就得到解决了,然后在这道题中是行...原创 2018-10-23 18:25:14 · 104 阅读 · 0 评论 -
2018acmicpc 焦作预选赛H题 后缀自动机模板+拓扑排序。
一道后缀自动机看的我头疼,加起来总共花了两天吧,差不多算是理解,真是智商捉急啊!!!题意大致就是给你一个字符串,然后问你有多少个字串出现的次数在给定的范围内。就酱。如果对后缀自动机不明白的可以看看这几个链接,讲的很详细:http://hihocoder.com/problemset/problem/1441和陈立杰大神的讲稿,推荐。代码:#include <bits/std...原创 2018-10-05 11:30:02 · 313 阅读 · 0 评论 -
poj 3687 反向拓扑寻求字典序最小解
看题意可得,这道题很明显是反向拓扑排序求解的问题,只不过反向拓扑排序求的是标签的顺序,之后还有把每个标签所对应的质量联系起来就好。代码:#include<cstdio>#include<cstdlib>#include<cstring>#include<queue>#include<set>#include<st...原创 2018-10-16 19:53:39 · 154 阅读 · 0 评论 -
hdu5438 拓扑排序+dfs
题意就是现在有一片池塘,池塘之间符合无向图的关系,每个池塘都有一个权值。现在要删去那些入度小于二的点,然后计算在剩下的池塘中,连接的池塘数为奇数的池塘总和。嗯,当初读题半天没读懂,把样例的数据画一下就很清晰了。思路就是:先用拓扑排序筛选那些入度小于2的池塘,然后dfs搜索看看每一个连接的池塘数是不是为奇数,如果是那么加上他们的总和,依次类推。小心超内存,第一次是只要入度小于2就push,超了,...原创 2018-10-15 18:00:00 · 132 阅读 · 0 评论 -
hdoj4324三角恋 拓扑入门模板题
题意就是给你一个方阵,在方阵种A(i,j)=1表示i->有一条边,保证两个点只有一条有向边,先问你在给定的方阵中是否存在三角恋关系也就是 a->b,b->c,c->a如有就输出Yes。要点:我之前思考时一直在想如何在最小的时间复杂度下判断最后形成的环是不是三个元素,然后发现好像都不是很行,查了别人的题解,发现我想多了只要判断最后是不是成环就好;代码:#prag...原创 2018-10-14 23:47:45 · 153 阅读 · 0 评论 -
wannafly 挑战赛 14 可行性问题 tarjan算法求连通分量+缩点思想
这道题题意就是给你一个图然后输出那些通过该点可到带图中任意位置的点。分析:要找到一些点,这些点的性质是通过这个点可以到达图中任意位置这就意味着这个点是连接了一个连通分量,那么在考虑这道题时就要往连通分量这方面考虑了,因为这个联通分量可能是一个大的连通分量,也可能是几个连通分量通过几个边连在一起,那么这道题就有了思路,先用tarjan算法求连通分量并且保存每个联通分量的点,然后再按照边的起点和终...原创 2018-10-06 20:14:09 · 111 阅读 · 0 评论 -
HDU1269 强连通分量-tarjan算法
题意就是在给定一个图的情况下,问这个单向图是不是强连通图。强连通图的意思就是图中任何一个点都可以到达另一个点。分析:这道题是tarjan算法求强连通分量的模板题,对于tarjan算法求连通分量的方法大致上是给每一个点标两个号,一个是自己是第几个被搜索到i,也叫时间标号(代码中用dfn【i】来表示第i个点的标号),另一个是这个点的子树中所能搜到的最小的时间标号(代码中用low【i】)表示,如...原创 2018-10-06 15:32:58 · 178 阅读 · 0 评论 -
HPU 1022 digust——树搜——dfs
题目链接——http://net.hpuacm.cf/contests题意:这个世界是由无数的透明房间组成,每间屋子都有一个或者若干个门,这些门将这些房间相连,保证任意两个房间只有一条路径可以相互到达(保证这个世界的结构是一个树形结构)。Philo与A分别处于两个透明的房间内。Philo想要远离 A ,现在请你帮助他。对于每个房间都有一个编号,两个相邻房间距离是1,已知Philo在x房...原创 2018-08-13 22:25:42 · 294 阅读 · 0 评论 -
hdu5638 拓扑入门
题意就是给你一个有向无环图,并且告诉你:你可以任意删去k条边,问在删去k条边后字典序最小的拓扑排序的和也就是如果最后得出的拓扑排序是4 3 2 1 5,那么就应该输出4*1+3*2+2*3+1*4+5*5结果,最后结果要对1e9+7取模思路:其实就是把普通的入度为1进队改为入队<=k 入队。感觉这题数据有点水,貌似不需要判断重边。代码:#include<cstdio&...原创 2018-10-23 22:21:37 · 178 阅读 · 0 评论