随笔分类 -  图论—DFS

摘要:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1405 题意: 思路: 先求出所有点到根节点的距离,需要维护每棵子树的大小,然后就可以再来一次dfs依次求出别的点的距离。好像需要手动扩栈。 阅读全文
posted @ 2017-12-15 21:44 Kayden_Cheung 阅读(237) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1064 题意: 思路: 考虑以下几种情况: ①无环并且是树: 无环的话就是树结构了,树结构的话想一下就知道它的k最大值就是它的最长链,最小值就是3(如果链长>=3的话),如果有多棵树,只需要把它们的最长 阅读全文
posted @ 2017-11-20 14:11 Kayden_Cheung 阅读(287) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/contest/793/problem/B 题意:一个地图,有起点和终点还有障碍点,求从起点出发到达终点,经过的路径上转弯次数是否能不超过2。 思路: 直接dfs,但是要优化一下,用vis[x][y][dir]来记录在(x,y)并且方向为dir时的最少转弯 阅读全文
posted @ 2017-05-26 22:03 Kayden_Cheung 阅读(132) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/Gym-101147J 题意: 有n个城市,每个城市有一个权值,表示在这个城市的加油站可以加多少油。 现在要计算每个城市i,有多少个城市j可以到达它: ① j 是 i 的子树。 ② 在城市 j 加满Xj的油后不再加油能到达 i 城市。 思路:我们 阅读全文
posted @ 2017-05-26 15:53 Kayden_Cheung 阅读(262) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/UVALive-7272 题意: 公司要提拔人,现在有n个人,现在有m条有向边,A->B表示A的表现比B好,也就是如果B晋升了,那么A肯定会晋升。 现在给出【L,R】,计算出晋升L个人时肯定会晋升的人数,晋升R个人时肯定会晋升的人数,还有肯定不可 阅读全文
posted @ 2017-05-19 14:09 Kayden_Cheung 阅读(164) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/UVA-11396 题意: 给出n个结点的简单无向图,每个点的度数均为3。你的任务是判断能否把它分解成若干爪。每条边必须属于一个爪,但同一个点可以出现在多个爪里。 思路: 一个鸡爪当中,有一个中心点,即度为3的点,还有3个边缘点。 每条边都连接了 阅读全文
posted @ 2017-04-30 16:42 Kayden_Cheung 阅读(162) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/UVA-818 题意:有n个圆环,其中有一些已经扣在了一起。现在需要打开尽量少的圆环,使得所有圆环可以组成一条链,例如,有5个圆环,1-2,2-3,4-5,则需要打开一个圆环,如圆环4,然 后用它穿过圆环3和圆环5后再次闭合4,就可以形成一条链: 阅读全文
posted @ 2017-01-25 22:40 Kayden_Cheung 阅读(934) 评论(0) 推荐(2) 编辑
摘要:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=144 题意:给出一个n个结点的无向图以及某个结点k,按照字典序从小到大顺序输出从1到结点k的所有路径。 思 阅读全文
posted @ 2017-01-24 21:44 Kayden_Cheung 阅读(492) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/UVA-1374 题意:给出n,计算最少需要几次能让x成为x^n(x和已经生成的数相乘或相除)。 思路:IDA*算法。 如果当前数组中最大的数乘以1<<(maxd-d)<n(即一直让最大的数相乘都无法到达n次方),此时可以剪枝。 阅读全文
posted @ 2017-01-24 17:17 Kayden_Cheung 阅读(323) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/UVA-1343 题意:如图所示,一共有8个1,8个2和8个3,如何以最少的移动来使得中间8个格子都为同一个数。 思路:状态空间搜索问题。 用IDA*算法的话会比较快,而且代码比较简洁。 IDA*的关键就是要寻找一个估价函数h(),在这道题目中, 阅读全文
posted @ 2017-01-24 10:25 Kayden_Cheung 阅读(300) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/UVA-11212 题意:给出n个自然段组成的文章,将他们排列成1,2...,n。每次只能剪切一段连续的自然段,粘贴时按照顺序粘贴。 思路:状态空间的搜索问题。 首先介绍一下IDA*,它属于DFS,在DFS遍历的时候,设定一个深度上限maxd,当 阅读全文
posted @ 2017-01-23 20:57 Kayden_Cheung 阅读(520) 评论(1) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1011 题意:若干个相同长度的棍子被剪成若干长度的小棍,求每根棍子原来的可能最小长度。 思路:很经典的搜索题。 我一开始各种超时,这题需要很多剪枝。 阅读全文
posted @ 2017-01-23 09:21 Kayden_Cheung 阅读(131) 评论(0) 推荐(0) 编辑
摘要:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3270 2017年的第一题。 题意:给出必须要经过的边,找一条经过所有边的最短道路。 一开始一点想法都没有 阅读全文
posted @ 2017-01-01 11:23 Kayden_Cheung 阅读(631) 评论(0) 推荐(1) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1010 题意:就是给出了一个迷宫,小狗必须经过指定的步数到达出口,并且每个格子只能走一次。 首先先来介绍一下奇偶性剪枝: 在这道题目中,如果使用剪枝的话,可以节省不少的时间。 在这道题目中,每次dfs循环时都可以判 阅读全文
posted @ 2016-12-28 14:34 Kayden_Cheung 阅读(215) 评论(0) 推荐(0) 编辑
摘要:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=513 终于开始接触图了,恩,开始接触DFS了,这道题就是求连通分量,比较简单。 2016-12-03 07 阅读全文
posted @ 2016-12-03 07:50 Kayden_Cheung 阅读(247) 评论(0) 推荐(0) 编辑

//目录
点击右上角即可分享
微信分享提示