随笔-72  评论-126  文章-0  trackbacks-0
http://acm.hdu.edu.cn/showproblem.php?pid=1813

第一道是迷宫搜索
叫你找出一个序列能让所有的点都按这个序列走出迷宫。。。
以前做的时候题意理解错误

昨天想了一下,这题的主要思想就是DFS出序列,让所有的点都走出去
以题目的数据规模最差的情况要最深25层
所以剪枝是关键
我的剪枝方法是让所有的出口入队。。。
BFS预处理出每一个点到出口的最小距离
然后开始DFS序列。每走一步判断所有的点在剩下的时间(即迭代加深的层数)内还能不能走出去
不行的话就回溯
直到找到答案。。


http://acm.hdu.edu.cn/showproblem.php?pid=1664
第二道就不是很直白的搜索了。
TTBJ大大介绍我做的
一看很像之前做的一道
http://acm.hdu.edu.cn/showproblem.php?pid=1226
超级密码

感觉差不多
限制就是要最少的数字,个数相同的话要最小。

首先根据容斥原理知道个数最多为2(我也不知道,猜两个数组可以全部表示,后来TTBJ和我说这是容斥原理)
所以用一个小小的迭代加深枚举出两组数列
1 2 3 4 5 6 7 8 9
和01 02 03 04 。。。。78 79 89
然后第一组(全部)进行BFS,可能会有很多个,比较得出最小的
第一组没找到的话进行第二组的BFS。。。。
(这个BFS是按照余数来hash的)

然后就得出答案了。。。


http://acm.hdu.edu.cn/showproblem.php?pid=1067
这道就是普通的BFS+字符hash
应为要保存全图,所以比较难处理。。。
就用了字符hash。。
做的时候我掉进陷阱里导致MTL,TLE了N次。。。。郁闷
posted on 2009-03-12 17:07 shǎ崽 阅读(500) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理