zoukankan      html  css  js  c++  java
  • 深度优先搜索学习---(入门)

    深度优先搜索的定义

      

       即深度优先是在遍历节点时,以深度为优先,先将一条路遍历完,之后再去遍历别的路。

      深度优先的代码框架

        

     1 /*深度优先*/
     2 
     3 bool Dfs(V){
     4     if(V为终点)
     5         return true;
     6     if(v为旧点) 
     7         return false;
     8     将v标记为旧点
     9     对和v相邻的每个节点U
    10     {
    11         if(Dfs(U)==true)
    12         
    13             return true;
    14     } 
    15     return false
    16 } 

      深度优先搜索例题:

        

         解法+思路

            

    /*
        踩方格
        思路:
            1.分析题目明确目的
            2.抽象题目,找出子问题,从最简单的做起
                例:分三种走法就是 way(i,j-1,n-1),way(i,j+1,n-1) ,way(i+1,j,n-1) 将他们加起来就是总种数
                注:一步步来,不要想着一步到位
            3.代码实现
        
        该题目的知识点:
            1.用染色法标记走过的格子,最后将 color[i][j]=0;重置防止干扰其他的走法
            2.memset()函数初始化数组 
    
    
    
    */
    
    #include<iostream>
    #include<cstring>
    using namespace std;
    
    
    int color[50][50];
    
    int way(int i,int j,int n)
    {
        if(n==0) 
            return 1;
        color[i][j]=1;//表示已经走过
        int number=0;    
        if(!color[i][j-1])//左走    
            number+=way(i,j-1,n-1);
        if(!color[i][j+1])//右走
            number+=way(i,j+1,n-1); 
        if(!color[i+1][j])//下走
            number+=way(i+1,j,n-1); 
            
        
        color[i][j]=0;//初始化,防止影响递归的操作 
        
        
        return number;
    }
    
    
    
    int main(){
        int n;    //步数
        int i,j;
        cout<<"请输入步数"<<endl; 
        cin>>n;
        memset(color,0,sizeof(color));
        
        cout<<way(0,25,n)<<endl;
        
        
        
        
        
        
        
        return 0;
    }
    View Code

      

  • 相关阅读:
    memcached连接说明
    在win下启动memcached
    Memcached 查看帮助
    HTTP请求信息和响应信息的格式
    购买服务器配置带宽算法
    PHP删除数组指定下标的值
    tp5 验证器使用
    tp5 验证码功能实现
    layui 关闭当前窗口,刷新父级页面
    layui icon样式1到7
  • 原文地址:https://www.cnblogs.com/printwangzhe/p/12327127.html
Copyright © 2011-2022 走看看