码迷,mamicode.com
首页 > 其他好文 > 详细

搜索模板(DFS/BFS)

时间:2017-08-22 14:24:31      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:pair   ret   struct   push   style   empty   queue   blog   个数   

DFS

int b[4][2] = {-1,0,0,1,1,0,0,-1};

int DFS( pair<int,int> x )
{
    int res=0;
    visited[x.first][x.second]=1;
    for( int i=0;i<4;i++ ){
        pair<int,int> tmp;
        tmp.first=x.first+b[i][0];
        tmp.second=x.second+b[i][1];
        if( check(tmp) )
        {
            visited[tmp.first][tmp.second]=1;
            res+=DFS(tmp);
        }
    }
    return res+1;//返回棋盘中所有能走的点的个数(红黑树)
}

BFS

struct Node
{
    int x,y,step;
}Node[maxn];
int dire[4][2]={-1,0,0,-1,1,0,0,1};

void BFS()
{
    queue<Node> que;
    Node p;
    p.x=st.x;
    p.y=st.y;
    p.step=0;
    que.push(p);
    visited[p.x][p.y]=1;
    while(!que.empty()){
        Node tmp=que.front();
        que.pop();
        if( tmp.x=ed.x && tmp.y=ed.y ){
            ans=tmp.step;
            break;
        }
        for( int i=0;i<4;i++ ){
            Node t;
            t.x=tmp.x+dire[i][0];
            t.y=tmp.y+dire[i][1];
            if( check(t) ){
                visited[t.x][t.y]=1;
                t.step=tmp.step+1;
                que.push(t);
            }
        }
    }
}

 

搜索模板(DFS/BFS)

标签:pair   ret   struct   push   style   empty   queue   blog   个数   

原文地址:http://www.cnblogs.com/Dawn-SS/p/7411293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!