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

ACM-DFS Template

时间:2018-03-04 20:01:26      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:temp   思想   dir   程序   class   ==   比较   std   amp   

 

自己写的DFSTemplate:

// DFS_Template.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

//DFS的思想是:一直向下搜索
//内部逻辑有两种:
//1.不走:找到解 or 走不下去了
//2.走:满足条件的下一个状态重复进行DFS



#include <iostream>
#include <string.h>
using namespace std;
const int N = 10;
int visit[N][N], map[N][N];
int dir[4][2] = { 1, 0, -1, 0, 0, 1, 0, -1 };

void DFS(int x,int y)
{
    
    //判断是否满足解
        

    //判断是否走不下去了

    for (int i = 0; i < 4; i++)
    {
        int nx = x + dir[i][0];
        int ny = y + dir[i][1];
        //判断新点是否满足继续搜索的条件
        if (nx >= 0 && nx <= N && ny >= 0 && ny <= N && visit[nx][ny] == 0)
        {
            //标记点
            visit[x][y] = 1;//最好把vis标记放在DFS函数外面,这样子集树的结构比较明显,调试也方便
            DFS(nx, ny);

        }    
            


    }
}


int main()
{
    //初始化
    memset(visit, 0, sizeof(visit));
    
    //标记点
    visit[0][0] = 1;
    DFS(0, 0);

}
 

 

ACM-DFS Template

标签:temp   思想   dir   程序   class   ==   比较   std   amp   

原文地址:https://www.cnblogs.com/x739400043/p/8505483.html

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