完全に調整されたDFSアプローチ

#include <iostream> 
#include <cstring>
 using  namespace std;
const  int maxn = 1e3;
int vis [maxn];
int p [maxn];
int n;
int t = 0 ;
void dfs(int x)
{
    if(x == n + 1 
    {
        forint i = 1 ; i <= n; i ++ 
            cout << p [i] << "  " ;
            cout << endl;
            戻る;
    }
    forint i = 1 ; i <= n; i ++ 
    {
        if(!vis [i])
        {
            表示[i] = 1 ;
            p [x] = i;
            dfs(x + 1 );
            表示[i] = 0 ;
        }
    }
}
int main()
{
    while(cin >> n)
    {
        memset(vis、0sizeof (vis));
        dfs(1 );
    }
}

 

おすすめ

転載: www.cnblogs.com/liyexin/p/12680850.html