题目:
http://codevs.cn/problem/1294/
代码(用cout 会超时!!!):
#include <iostream> #include<cstdio> using namespace std; int n; bool visited[15] = {false}; int res[15] = {0}; void dfs(int m) { if(m > n) { for(int i = 1; i < n; i++) { printf("%d ", res[i]); } printf("%d ",res[n]); } for(int i = 1; i <= n; i++) { if(!visited[i]) { res[m] = i; visited[i] = true; dfs(m+1); visited[i] = false; } } } int main() { scanf("%d", &n); dfs(1); return 0; }