开DFS了

简介: 开DFS了

活动 - AcWing 经典DFS 全排列

#include<iostream>
using namespace std ;
const int N = 10 ;
int n ;
int path[N],u[N];
void dfs(int m){
  if(m > n){
    for(int i = 1; i <= n ; i ++) cout << path[i] << " ";
    cout << endl ;
    return ;
  }
  for(int i = 1; i <= n ; i ++){
    if(!u[i]){
      path[m] = i;
      u[i] ++ ;
      dfs(m+1);
      u[i] -- ;
    }
  }
  
}
 
int main(){
  cin >> n ;
  dfs(1);
  return 0 ;  
}

关于dfs的用法有很多 其中dfs找所有路径 和 dfs 找所有排列方式 是最常用的

对于dfs有一种基本的代码框架

目录
相关文章
|
数据采集 自然语言处理 搜索推荐
图文详解 DFS 和 BFS | 算法必看系列知识二十四
深度优先遍历(Depth First Search, 简称 DFS) 与广度优先遍历(Breath First Search)是图论中两种非常重要的算法,生产上广泛用于拓扑排序,寻路(走迷宫),搜索引擎,爬虫等,也频繁出现在高频面试题中。
32106 4
图文详解 DFS 和 BFS | 算法必看系列知识二十四
|
2月前
|
存储 算法 Java
【DFS(深度优先搜索)详解】看这一篇就够啦
本文介绍了深度优先搜索(DFS)算法及其应用。DFS从某个顶点出发,深入探索图的每条路径,直到无法前进为止,然后回溯。文章详细解释了DFS的基本思想,并通过示例图展示了其执行过程。此外,文中还探讨了三种枚举方式:指数型枚举、排列型枚举和组合型枚举,并提供了具体的代码实现。最后,文章通过几道练习题帮助读者更好地理解和应用DFS算法。
1585 19
【DFS(深度优先搜索)详解】看这一篇就够啦
|
定位技术
DFS:迷宫解的方案数
DFS:迷宫解的方案数
|
算法 JavaScript
好的,DFS,也学废了!
没错,本篇是上一篇《好的,BFS,又学废了!》的姊妹篇,意在通过简单回顾拾起学了忘、又忘了学的基础数据结构; DFS,全称是:深度优先遍历(Depth_First_Search),通常和 BFS 广度优先遍历(Breadth-first search)对比理解学习;
<<算法很美>>——(七)——DFS典题(一):水洼数目
<<算法很美>>——(七)——DFS典题(一):水洼数目
<<算法很美>>——(七)——DFS典题(一):水洼数目
|
算法
图的深度优先搜索(DFS)的应用--马踏棋盘问题(骑士周游问题)
图的深度优先搜索(DFS)的应用--马踏棋盘问题(骑士周游问题)
103 0
L2-020 功夫传人 (25 分)(dfs)
L2-020 功夫传人 (25 分)(dfs)
127 0