老早以前就遇到的一道题,那时候傻傻地用next_permutation()……dfs+剪枝
#includeusing namespace std; const int prime[38]= {0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1}; int vis[20],n,curr,p[20]; void dfs(int curr) { if(curr==n&&prime[1+p[n-1]]) { printf("1"); for(int i=1;i