搜索
ahero_happy
这个作者很懒,什么都没留下…
展开
-
pku1184很有技巧的广搜
题意:有一个六位数,开始光标在第一位数上,现在通过向左,右移动光标,将光标上的数加,减一,与第一,五个数交换这几个操作变为另一个数(光标在任何地方都满足),求最少的操作数 分析:开始想双向广搜,状态为6*10^6个状态,和单向广搜是一样的,会超时。后面想的几种优化发原创 2011-07-15 15:46:58 · 534 阅读 · 0 评论 -
pku1376Robot
这题主要经典的广搜,一般方法定义一个数组表示每个位置的四个面是否被访问,然后用队列来做就可以了!只是要注意下旁边是不能走的!代码如下(参照别人的,结构很清晰!)/*Problem: 1376 User: qjklw Memory: 208K Time: 94MS Language: C++ Result: Accepted */#include #include原创 2010-01-15 20:06:00 · 531 阅读 · 0 评论 -
pku1324贪吃蛇 进制描述状态
题意:就是给你一个蛇的初始状态,一些障碍物,问最少多少步头到达(1,1)这个点? 分析:蛇的长度最长为8,最多有20*20个方格,对于每条蛇,如果我们记录它的头结点的位置与前面结点相对于后面的转向(上,下,左,右四种),那么蛇的位置就唯一了。所以总的状态为20*20*原创 2011-07-19 09:48:49 · 534 阅读 · 0 评论 -
pku2449第K短路 最短路+A*
题意:求一点至另一点的第K短路。注意如果起点和终点一样的话,那么刚开始起点不算到达终点。 分析:寻找最短路,直接SPFA就可以了。。。这里是第K短路,把每一条路径都找出来。开始想用DP,dp[i][j]表示到i结点第j大的路径权值是多少,但这样还是搜,而且会超时原创 2011-08-03 12:44:22 · 2837 阅读 · 0 评论