9 条题解

  • 0
    @ 2024-4-5 22:42:38
    #include <cstdio>
    #include <vector>
    #include <functional>
    
    using namespace std;
    
    int main() {
    	int n;
    	scanf("%d", &n);
    	
    	vector<char> ita(n + 1, 0);
    	vector<int> res;
    	function<void()> dfs = [&]() {
    		if (res.size() >= n) {
    			for (int& it : res)
    				printf("%d ", it);
    			printf("\n");
    			return;
    		}
    		
    		for (int i = 1; i <= n; ++i) {
    			if (!ita[i]) { // 是否已经放过
    				ita[i] = 1;
    				res.push_back(i); // 放
    				dfs();
    				res.pop_back(); // 不放
    				ita[i] = 0;
    			}
    		}
    	};
    	
    	dfs();
    	
    	return 0;
    }
    

    信息

    ID
    82
    时间
    2000ms
    内存
    512MiB
    难度
    5
    标签
    递交数
    412
    已通过
    162
    上传者