
DFS深度优先搜索
neofung
这个作者很懒,什么都没留下…
展开
-
ZOJ2526 FatMouse and JavaBean II,Dijkstra算法+DFS
这题挺不错的,有一定难度。求到终点的最短路径我用Dijkstra,其路径更新条件可以看我的程序,如果到某个点有多个路径长度一样的最短路径,则选择豆子总数最多的。而求有多少条路径的长度是最短的,我没有想到什么好的方法,只能用DFS了。/*****************原创 2011-08-20 14:48:59 · 788 阅读 · 0 评论 -
ZOJ3516 Tree of Three,DFS
DFS和BFS都可以,看你喜欢吧,很水/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2012-07-11 19:56 # Filename:原创 2012-07-11 19:53:14 · 615 阅读 · 0 评论 -
ZOJ3305 Get Sauce
DFS好题。首先因为最多只有16种元素,所以我们可以用一个INT表示一个组合,每一位对应一个元素,1表示这个元素在这个组合中出现。最主要的剪枝是数据的预处理。如果存在三种组合11, 21, 2, 3我们只需要保留第一种组合就行了,这里有点贪心的成分。因为组合中的元素越少,能够同时存在的组合越多。/***********************************原创 2012-05-13 19:53:35 · 1135 阅读 · 0 评论 -
ZOJ1376 POJ1227 RoboContest,DFS
挺好的一道DFS题。题目给定一个无向图,节点上放置有机器人,要求每一个回合机器人都要往相邻的节点走一步,问是否存在有一个节点,使得所有机器人在某一步中能够在此节点相会。假如对于其中一个机器人,在某个节点上,在奇数步odd内能够到达此节点,则在任意比odd大的奇数步内都能重返此节点。偶数步同理也是。需要注意的是,有些节点不管是奇数还是偶数都能到达。因此,对于每一个机器人,我们只需要用原创 2012-05-29 20:46:53 · 911 阅读 · 0 评论 -
ZOJ1008 Gnome Tetravex
比较简单的DFS题,不要给它吓到了。需要剪枝,比较简单,把相同的方块聚合起来,如果一块方块不能放于某个位置,则和它相同的方块也不能放在这个位置。/******************************************************************************* # Author : Neo Fung # Email : neosfun原创 2012-04-17 19:23:52 · 2118 阅读 · 0 评论 -
ZOJ1003 Crashing Balloon
虽说是深搜,但是自己的代码总是wa。。。上网看了一些代码,基本上都是同一个样子膜拜ing。。。/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last mod原创 2012-04-07 20:27:42 · 1128 阅读 · 0 评论 -
POJ1062 昂贵的聘礼, ZOJ1245 Best Deal
dfs和最短路都可以做, 我用的是dfs, 最短路应该可以更短. 一开始没有标记每个物品是否已经使用, WA和MLE了很久...#ifdef _MSC_VER#define DEBUG#define _CRT_SECURE_NO_DEPRECATE#endif#include #include #include #include #include #incl原创 2012-02-16 21:01:59 · 629 阅读 · 0 评论 -
POJ1011 HDU1455 Sticks
DFS的好题, 需要深度的剪枝, 详细请看注释/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2012-03-08 20:31 # F原创 2012-03-08 20:31:50 · 1095 阅读 · 0 评论 -
ZOJ3010 The Lamp Game, DFS
深搜的题, 可以直接用深搜穷举, 最多也就是2^10个状态.我这里用了栈来递归WA了一次, 想错了灯改变的耗费了...#ifdef _MSC_VER#define DEBUG#define _CRT_SECURE_NO_DEPRECATE#endif#include #include #include #include #include #include原创 2012-02-17 21:08:16 · 539 阅读 · 0 评论 -
ZOJ3516 Tree of Three
递归遍历树,DFS/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2012-01-16 17:58 # Filename: ZOJ35原创 2012-01-16 18:08:28 · 549 阅读 · 0 评论 -
URAL1056 Computer Net
这题的题意是,给定一棵树,找出这棵树的最长路径的中点。我分开两次DFS来做,第一次先找出各个节点的高度,以及对于每一个节点和它子节点构成的子树,子树中通过根节点的最长路径。则第一次DFS后必然找到一条最长的路径max_len。则在第二次DFS中,我们如果知道每一个节点的高度depth,则如果一个点now是中点必然满足这个表达式depth[now]==max_len/2 || (max_len-de原创 2011-12-02 20:29:23 · 683 阅读 · 0 评论 -
ZOJ1909 POJ2362 HDU1518 Square,很经典的DFS+剪枝!
这题很经典的DFS+剪枝!我做了很久,DFS的回溯一直很混乱后来参考了这篇解题报告后顿时茅塞顿开!解题报告请猛击我!我的报告里面有对应的剪枝解释/******************************************************************************* # Author : Neo Fung # Email : neosfun原创 2011-10-19 21:40:17 · 1560 阅读 · 0 评论 -
ZOJ1204 Additive equations,DFS+set+仿函数+剪枝
这题有点挑战,首先是输出是按字典序的,这里我是用了set嵌套set实现去重复,以及利用仿函数实现按字典序排序。其次是如果对数据处理不好就会出现TLE,所以先对输入数据按照从大到小排序,然后确定循环的上下界来实现剪枝。150ms,贡献了4个TLE,泪奔。。。不过仿函数以及STL容器原创 2011-08-28 19:41:10 · 1478 阅读 · 0 评论 -
ZOJ1711 POJ1564 Sum It Up,DFS+输出排序+去重复
这题一看上去就知道要用DFS了,但是里面有个条件,输出必须是按字典序排序的,而且还要去除重复项。看到这里一般都会想尽很多办法的,不过我就直接用multiset和set。multiset运行容器中的元素重复,这样可以记录所有的组合;而set是不允许容器中的元素重复的,这样就可以把结原创 2011-08-28 12:59:26 · 1270 阅读 · 0 评论 -
ZOJ2682 People like People,深度优先搜索
这题有点难度,不过理清题目后还是可以解决的。首先我们把全部节点都视为core节点。把出度为0的节点剔除掉,同时也可以把指向出度为0的节点的节点也剔除掉。把入度为0的节点剔除,同时修改它指向的节点的入度。不断重复直到没有可以剔除的节点了。这样余下的节点都可以构成core。这里可以构原创 2011-09-23 20:39:27 · 661 阅读 · 0 评论 -
POJ3895 Cycles of Lanes,DFS
很简单的搜索题,DFS和BFS都可以。/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2012-06-13 16:07 # Fil原创 2012-07-17 19:36:20 · 1157 阅读 · 0 评论