zoukankan      html  css  js  c++  java
  • ACM-DFS Template

    自己写的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);
    
    }
     
  • 相关阅读:
    贝塞尔曲线应用(贝塞尔插值)
    贝塞尔曲线原理(简单阐述)
    STL头文件有哪些及简单介绍
    句柄与MFC对象关系和相互获取
    Reflect
    Set 和 Map 数据结构
    Symbol
    对象的新增方法
    对象的扩展
    数组的扩展
  • 原文地址:https://www.cnblogs.com/x739400043/p/8505483.html
Copyright © 2011-2022 走看看