hdu 1016 Prime Ring Problem DFS解法 纪念我在杭电的第一百题

#include <stdio.h>#include <string.h>#define MAX 25bool visited[MAX] ;int n , ans[MAX] ;bool prime[2*MAX];void DFS(int num){if(num == n){if(!prime[ans[num-1]+1])return ;for(int i = 0 ; i < n ; ++i){printf("%d",ans[i]);if(i != n-1){printf(" ");}}printf("\n") ;return ;}else{for(int i = 1 ; i <= n ; ++i){if(!visited[i] && prime[i+ans[num-1]]){visited[i] = true ;ans[num] = i;DFS(num+1);visited[i] = false ;}}}}int main(){for(int i = 2 ; i < 51 ; ++i)prime[i] = true ;prime[0]=prime[1]=false;prime[2] = true ;for(int i = 2 ; i < 51; ++i){for(int j = 2 ; j*i < 51 ; ++j){prime[i*j] = false ;}}ans[0] = 1 ;int c=1;while(~scanf("%d",&n)){memset(visited,0,sizeof(visited));visited[1] = true ;printf("Case %d:\n",c++);DFS(1);printf("\n");}return 0 ;}

,人,都有不能称心如意的时候,都有愿望落空的窘迫,

hdu 1016 Prime Ring Problem DFS解法 纪念我在杭电的第一百题

相关文章:

你感兴趣的文章:

标签云: