1 solutions

  • 0
    @ 2024-6-26 18:27:10
    #include<bits/stdc++.h>
    using namespace std;
    const int N=10;
    bool st[N];
    int ans[N];
    int n;
    void dfs(int u)
    {
        if(u==n+1) //找到答案
        {
            for(int i=1;i<=n;i++)
            {
                cout<<ans[i]<<" ";
            }
            cout<<endl;
            return ;
        }
        for(int i=n;i>=1;i--)
        {
            if(!st[i]) //当前分支i还没有使用过
            {
                ans[u]=i; //第u个数填i
                st[i]=1;
                dfs(u+1);//往下走的分支的i已经使用过了。
                st[i]=0;//接下来会换个分支,清除标记
            }
        }
    }
    int main()
    {
        cin>>n;
        dfs(1);
        return 0;
    }
    
    • 1

    Information

    ID
    1277
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    19
    Accepted
    6
    Uploaded By