6 条题解

  • 0
    @ 2026-7-18 9:37:16

    %100AC

    #include <bits/stdc++.h>

    using namespace std;

    int n,a[20],flag[20]={};

    void f(int x){

    if(x==n+1){
    
    	for(int i=1;i<=n;i++){  //输出
    
    		cout<<a[i]<<" ";
      
    	}
    	cout<<endl;
    
    	return;
    
    }
    
    for(int i=1;i<=n;i++){  //从小到大
    
    	if(flag[i]==0){
    
    	a[x]=i;
    
    	flag[i]=1;
    
    	f(x+1);
    
    	flag[i]=0; //回溯
    
    }
    

    }

    }

    int main(){

    cin>>n;
    
    f(1);
    
    return 0;
    

    }

    信息

    ID
    7
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    501
    已通过
    307
    上传者