1 条题解

  • 0
    @ 2024-4-1 0:06:25
    • 2024-04-01
    • dfs搜索
    #include<bits/stdc++.h>
    
    
    void solve()
    {
    	std::vector<int> vis(10);
    	int n; std::cin >> n;
    	std::vector<int> ans;
    	std::vector<int> path(10);
    	std::function<void(int)> dfs = [&](int u)
    	{
    		if(u == n)
    		{
    			for(int i = 0; i < n; i++) std::cout << path[i];
    			std::cout << "\n";
    			return;
    		}
    		
    		for(int i = 1; i <= n; i++)
    		{
    			if(vis[i]) continue;
    			path[u] = i;
    			vis[i] = 1;
    			dfs(u + 1);
    			vis[i] = 0;
    		}
    	};
    	
    	dfs(0);
    }
    int main()
    {
    	std::ios::sync_with_stdio(false);
    	std::cin.tie(nullptr);
    	int t = 1;
    	while(t--) solve();
    	return 0;
    }
    
    • 1

    信息

    ID
    20
    时间
    2000ms
    内存
    128MiB
    难度
    3
    标签
    递交数
    157
    已通过
    83
    上传者