uva 10047

来源:互联网 发布:编程手机软件 编辑:程序博客网 时间:2024/05/16 15:06

哈哈,错了错了,全错了..........

  做这道题给我的启发不少,首先,我对visit数组的认识有了一个新的认识,以前一直认为它仅仅是标记一下到没到过一个占,现在才知道理解错了,以前仅仅是巧合.......我是水货......呵呵,不过现在知道了,它是用来表示某个状态是否出现过,也就是说同一个状态不能出现两次,明白了这点,就知道visit应该是个四维数组(在一个格子里,坐标,方向,颜色)........明白这点,以后的就和一以前的差不多了

  但是,需要注意的是优先队列的使用,非常关键,我们需要每次都用最优的一个状态来扩展其它状态,所以要将它放在队首,这就是优先队列的作用了,它按照队列元素的优先性来排队(一般队列是特殊的优先队列,它的优先性是进入队列的先后),但是优先队列并不一定就比一般队列好,因为在找最优状态时是要花费时间的,而一般队列只用顺序进出就行....

上面关于优先队列,是在别人给我讲的基础上再加上自己的理解说的,如果有不对,请帮我改正,大家交流下。