2012年9月15日
摘要: 带状态的BFS+优先队列。大意:一艘船在海上航行,需要从海上的一点航行到海上的另一点,期间有八种不同方向的风吹过,如果是顺风航行的话,那么不需要消耗燃料,否则消耗燃料+1。思路1:假如从A->B,那么将maze[Bx][By]与现在的方向i相比较,如果相等,则跳过。若不相等,则step++;之后我们有两种处理方法,一是用三维数组int v[SIZE][SIZE][8]判重,我试了试,果断MLE。改为char v[SIZE][SIZE][8],TLE。思路2:判状态不用三维数组判重,而直接用Time[SIZE][SIZE]储存每一个状态的时间,如果q.step<Time[q.x][q 阅读全文
posted @ 2012-09-15 18:29 有间博客 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 简单BFS+优先队列。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<queue>usingnamespacestd;#defineSIZE21#defineINF0x3f3f3f3fconstintdx[]={1,-1,0,0};constintdy[]={0,0,-1,1};charmaze[SIZE][SIZE];intTime[SIZE][SIZE];intN,M;intbx,by,ex,ey;inttS,tP,tT;structnode{friendb 阅读全文
posted @ 2012-09-15 14:43 有间博客 阅读(224) 评论(0) 推荐(0) 编辑