2 条题解

  • 0
    @ 2023-5-16 15:56:32
    #include <iostream>
    #include <cstdio> 
    #include <cstring>
    using namespace std;
    const int N=100;
    int a[N];
    bool vis[N];
    int n;
    void dfs(int k)
    {
        if(k>n)
        {
            for(int i=1;i<=n;i++) printf("%5d",a[i]);
            cout << endl;
            return;
        }
        for(int i=1;i<=n;i++)
        {
            if(vis[i])
            {
                vis[i]=false;
                a[k]=i;
                dfs(k+1);
                vis[i]=true;
            }
        }
    }
    int main()
    {
        memset(vis,true,sizeof(vis));
        cin >> n;
        dfs(1);
        return 0;
    }
    
    • 0
      @ 2023-5-1 10:16:27
      #include<bits/stdc++.h>
      
      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++){
              printf("%5d",path[i]);
          }
          cout<<endl;
          }
          for(int i=1;i<=n;i++)
              {
                  if(!st[i]){
                      path[u] = i;
                      st[i]=true;
                      dfs(u+1);
                      st[i]=false;
                  }
              }
          
         
      }
      int main()
      {
          cin>>n;
      
          dfs(0);
          
          return 0;
      }
      
      • 1

      信息

      ID
      320
      时间
      1000ms
      内存
      128MiB
      难度
      6
      标签
      递交数
      26
      已通过
      10
      上传者