hdu 1016 Prime Ring Problem

来源:互联网 发布:淘宝店怎么刷人气 编辑:程序博客网 时间:2024/06/03 23:37

dfs水题

#include<iostream>#include<cstring>#define maxn 20+5 #define pr 100000using namespace std;int n;int visit[maxn];int re[maxn];int ans;int u[pr]={0};void prime(){int i,j;u[0]=1,u[1]=1;for(i=2;i<pr;i++){if(!u[i]){for(j=2;i*j<pr;j++){u[i*j]=1;}}}} void dfs(int sum){if(sum==n&&!u[re[sum-1]+re[0]]){cout<<re[0];for(int i=1;i<n;i++) cout<<' '<<re[i];cout<<endl;}for(int i=1;i<=n;i++){if(!visit[i]&&!u[i+re[sum-1]]){re[sum]=i;visit[i]=1;dfs(sum+1);visit[i]=0;}}}int main(){int casee=1;prime();while(cin>>n){cout<<"Case "<<casee++<<":"<<endl;memset(visit,0,sizeof(visit));memset(re,0,sizeof(re));re[0]=1;visit[1]=1;dfs(1);cout<<endl;}return 0;}


 

0 0
原创粉丝点击