博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DFS BFS 总结
阅读量:5069 次
发布时间:2019-06-12

本文共 1063 字,大约阅读时间需要 3 分钟。

这两三天做了不少DFS,BFS题。。

首先是BFS。。

1001.赤裸裸的BFS....注意标记。。否则会MLE,RUNTIME ERROR。。BFS要占用非常多的内存。。

不断入队。而DFS。。则容易TLE,需要根据题意剪枝,回溯。

1002 诡异的楼。变换了下。。电梯方向可以根据时间的奇偶性来判断。

同是要用优先队列。。按时间从小到大排序。。

1003 knight moves..非常裸的BFS。。8个方向。处理好输入就没什么问题啦

1004 asteriods.. 三维空间的BFS。。6个方向。没有什么变化。

1005 rescue..刚开始一看题,感觉非常简单。一交wa,才明白朋友可能有多个。。应该从a搜索r..同时也要用优先队列。。选出最少时间

1006 连连看。。这题关键是要记录每个点的方向。。和转折次数。还要剪枝。。。用mark二维数组来记录每个点的转折次数。

1007 nightmare..这题不能用简单的走过的点标记。。有可能某过点经过之后再次经过。。所以可以用生命值来剪枝。

开个hash二维数组。。初始话为0.。。。起点为6,能走的点条件是它的生命值大于hash[x][y]...碰到4.重新赋值6.。。

1008 嘿嘿。这题太暴力了。。每次6种可能入队。。写的我异常烦燥。改错误该了好久。幸好最后AC了。。真的要冷静再冷静。。

DFS:

1001  这题没有奇偶剪枝。。果断TLE。。。有了奇偶剪枝。。我忘记加。。if (flag) return; 继续TLE。

1002  这题裸的。不需剪枝

1003 这题也裸。关键在如何传递参数。把参数设置好了就不会有什么问题。

1004 这题注意去重。。 if (x < i && A[x] == A[x-1]) continue; 要理解好递归函数调用机制

1005 对搜索过的点记忆下。很好的一题。。

1006 下沙下面的。需要回溯标记已访问的点。然后枚举每一种可能。然后选出最小的。

1007 和1006类似。

1008 变形课。。我把它转换成邻接矩阵来搜索。最后写了个有返回值的DFS。。一直wa..写错了悲剧。旭帮我。改成void 型就AC了。还是没有完全理解好递归函数的机制。

无论是BFS。还是DFS。。都是盲目式的搜索。枚举每一中可能。。剪枝。。找到所求解。等以后有充足时间了好好看下启发式搜索。。

转载于:https://www.cnblogs.com/tangcong/archive/2011/08/12/2136527.html

你可能感兴趣的文章
模板统计LA 4670 Dominating Patterns
查看>>
泛型第23条:请不要在新代码中使用原生态类型
查看>>
团队项目开发客户端——登录子系统的设计
查看>>
【AppScan心得】IBM Rational AppScan 无法记录登录序列
查看>>
[翻译] USING GIT IN XCODE [4] 在XCODE中使用GIT[4]
查看>>
简化通知中心的使用
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
html 简介
查看>>
session如何保存在专门的StateServer服务器中
查看>>
react展示数据
查看>>
测试计划
查看>>
选择器
查看>>
Mysql与Oracle 的对比
查看>>
idea的maven项目无法引入junit
查看>>
jquery实现限制textarea输入字数
查看>>
thinkphp5 csv格式导入导出(多数据处理)
查看>>
fur168.com 改成5917电影
查看>>
PHP上传RAR压缩包并解压目录
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>