对于图的东西总是一筹莫展,没办法,还是翻出以前的基础题来看看,然后慢慢分析吧。路漫漫其修远兮,吾将上下而求索……
void bfs(int x,int y){
for(int k=0;k<8;k++)
if(inmap(x+dx[k],y+dy[k]) && !map[x+dx[k]][y+dy[k]]){
map[x+dx[k]][y+dy[k]] = true;
levels[x+dx[k]][y+dy[k]] = levels[x][y] + 1;
xx.push(x+dx[k]);
yy.push(y+dy[k]);
//sum++;
if(x+dx[k]==x2 && y+dy[k]==y2) return;
}
if(!xx.empty()){
xx.pop();
yy.pop();
}
if(!xx.empty())
bfs( xx.front(),yy.front() );
}