首页 > 其他分享 >DFS

DFS

时间:2022-09-28 19:24:36浏览次数:63  
标签:int dfs state DFS path 填写数字 节点

原理

原理很简单,就是搜索一条路,一路走到头;

如果不符合题意,返回上一节点;

再从上一节点找另一条子节点继续往下走;

思路

path[]

该数组用来存储方法,当到达路径底部,返回该方案;

state[]

用于标记该节点是否已经使用过;

state[i]若为1,即为已经使用过;若为0,即为未使用过;

dfs(i)

表示在path[i]处填写数字,递归时就会在下一个地方填写数字;

回溯

第 i 个位置填写某个数字的所有情况都遍历后, 第 i 个位置填写另一个数字。

例题

https://www.acwing.com/solution/content/30988/

题解

#include<bits/stdc++.h>
using namespace std;
int path[10];//保存数列;
int state[10];//标记数字是否使用过;
int n;
void dfs(int x)
{
    if(x > n)//如果数字已经填完了,输出;
    {
        for(int i = 1 ; i <= n ; i++)
        {
            cout << path[i] << " ";
        }
        cout << endl;
    }
    
    for(int i = 1 ; i <= n ; i++)
    {
        if(!state[i])//如果数字i没有被用过;
        {
            path[x] = i;//放入空位;
            state[i] = 1;//标记在该情况下已使用;
            dfs(x + 1);//迭代
            state[i] = 0;//回溯,将上一个使用过的数字取消标记
        }
    }
}
int main()
{
    cin >> n;
    dfs(1);
    
    
    return 0;
}

标签:int,dfs,state,DFS,path,填写数字,节点
From: https://www.cnblogs.com/RimekeyBergling/p/16739282.html

相关文章

  • DFS算法练习 POJ1111; POJ1129; POJ2245; POJ2657
    POJ1111:importjava.util.Scanner;/***@Authorjinjun99*@DateCreatedin2022/9/279:49*@Description*@Sinceversion-1.0*/publicclassMain{......
  • ABC 239 E - Subtree K-th Max(树+dfs)
    https://atcoder.jp/contests/abc239/tasks/abc239_e题目大意:给定一棵树,根节点是1,一共有n个节点,每一个节点都有它自己的值给定n-1条边,和q个询问问我们在第x个节点之......
  • ABC 270 C - Simple path(树+dfs)
    第一次写出比较正经的树+dfs,这不得写篇博客题目大意:给定一棵树,具有n个节点,给定n-1条边,给定一个起点和终点,让我们输出从起点到终点的路径。SampleInput1Copy5......
  • Flink读取Kafka数据下沉到HDFS
    1:采用BucketingSink的方式publicclassBucketingSinkDemo{publicstaticvoidmain(String[]args)throwsException{longrolloverInterval=2......
  • ABC 242 D - ABC Transform(dfs)
    https://atcoder.jp/contests/abc242/tasks/abc242_d题目大意:初始化给定一个字符串为S(S中只包含ABC三种字符)每次经过一次操作下:A就会变成BC,B变成CA,C变成AB。问我们......
  • HDFS基本架构与副本备份
    HDFS官方架构图,清晰明了主角色,要注意的是NameNode因为它的特性使得它是HDFS的唯一访问入口主角色辅助角色,要注意的是SecondaryNameNode不是NameNode的备份,而是它的"......
  • DFS求旅行商问题
    设有城市1.2.3.4,求从1出发,不重复地经过4个城市且最终返回城市1的最短路径问题分析:将该题转为加权图模型,尝试所有可行路线,并比较得出最短路径。#include<iostream>#defi......
  • 洛谷 P1025 [NOIP2001 提高组] 数的划分 (dfs)
    https://www.luogu.com.cn/problem/P1025给定一个n和k,把n拆分成k个数字的和,数字可以相同,但是种类不能相同。求能凑出的数量。输入73输出4明明是一道很简单的dfs,......
  • BigData——HDFS操作
    HDFSshell操作配置hadoop环境变量vi/etc/profileexportHADOOP_HOME=/usr/local/soft/hadoop-2.6.0exportPATH=.:\$JAVA_HOME/bin:\$HADOOP_HOME/bin:$PATH然后执......
  • 我眼中的大数据(二)——HDFS
    Hadoop的第一个产品是HDFS,可以说分布式文件存储是分布式计算的基础,也可见分布式文件存储的重要性。如果我们将大数据计算比作烹饪,那么数据就是食材,而Hadoop分布式文件系统H......