开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有一种基本的代码框架

目录
相关文章
|
8月前
【每日一题Day305】LC1448统计二叉树中好节点的数目 | dfs
【每日一题Day305】LC1448统计二叉树中好节点的数目 | dfs
51 0
|
数据采集 自然语言处理 搜索推荐
图文详解 DFS 和 BFS | 算法必看系列知识二十四
深度优先遍历(Depth First Search, 简称 DFS) 与广度优先遍历(Breath First Search)是图论中两种非常重要的算法,生产上广泛用于拓扑排序,寻路(走迷宫),搜索引擎,爬虫等,也频繁出现在高频面试题中。
33203 4
图文详解 DFS 和 BFS | 算法必看系列知识二十四
|
4月前
|
存储 算法 Java
【DFS(深度优先搜索)详解】看这一篇就够啦
本文介绍了深度优先搜索(DFS)算法及其应用。DFS从某个顶点出发,深入探索图的每条路径,直到无法前进为止,然后回溯。文章详细解释了DFS的基本思想,并通过示例图展示了其执行过程。此外,文中还探讨了三种枚举方式:指数型枚举、排列型枚举和组合型枚举,并提供了具体的代码实现。最后,文章通过几道练习题帮助读者更好地理解和应用DFS算法。
2821 19
|
存储 算法
手把手学会DFS (递归入门)
DFS的思想,经典题目的讲解,手把手入门✨✨
348 0
手把手学会DFS (递归入门)
《蓝桥杯每日一题》dfs·AcWing3502. 不同路径数
《蓝桥杯每日一题》dfs·AcWing3502. 不同路径数
76 0
|
定位技术
DFS:迷宫解的方案数
DFS:迷宫解的方案数
102 0
|
机器学习/深度学习 算法
算法每日一题:P2089 烤鸡 -DFS练习
算法每日一题:P2089 烤鸡 -DFS练习
leetcode-每日一题623. 在二叉树中增加一行(DFS)
这题的要求:根节点为深度1开始,在depth深度创建一个新的节点,把原来depth深度的节点,父节点的左子节点依旧为新节点的左子节点,右子节点依旧为新节点的右子节点。
97 0
leetcode-每日一题623. 在二叉树中增加一行(DFS)
L2-020 功夫传人 (25 分)(dfs)
L2-020 功夫传人 (25 分)(dfs)
137 0

热门文章

最新文章