0
点赞
收藏
分享

微信扫一扫

DFS(排列数字)

SDKB英文 2022-02-12 阅读 32

DFS入门级(模板)_浮生未歇-CSDN博客_dfs入门

题目:

代码:

#include <iostream>

using namespace std;

const int N = 10;

int n;
int path[N];
bool st[N];

void dfs(int u)
{
    if (u == n)//说明当前位置已填满
    {
        for (int i = 0; i < n; i ++ )cout<<path[i]<<" ";
        puts("");
        return;
    }

    for (int i = 1; i <= n; i ++ )  //当前位置没有被填满
        if (!st[i])  
        {
            path[u] = i ;  //把i放到当前位置上
            st[i]=true;  //记录i已被用过
            dfs(u+1);//递归到下一层
            path[u]=0; //恢复(也可省略)
            st[i]=false;
        }
}

int main()
{
    cin>>n;;

    dfs(0);

    return 0;
}

 

举报

相关推荐

0 条评论