ACM之素数环(DFS)
2016-03-24 21:18
411 查看
#include<stdio.h> #include<iostream> using namespace std; #include<stdlib.h> int visit[30];//visit为标记数组 int a[30]; int n; int count; /*判断是否为素数*/ int su(int x) { int i; for(i=2; i*i<=x; i++) if(x%i==0) return 0; return 1; } //深搜 void dfs(int x,int y) { if(y==n+1) { if(su(x+1)==1) { count++; for(int i=1;i<=n;i++) printf("%d ",a[i]); printf("\n"); } } for(int i=2; i<=n; i++) { if(visit[i]==0&&su(x+i)==1) //x与其他没有遍历过的点进行比较判断 { visit[i]=1;//标记 a[y]=i; dfs(i,y+1); //递归 visit[i]=0;//恢复现场 } } } int main() { while(~scanf("%d",&n)) { count=0; a[1]=1; visit[1]=1; dfs(1,2); cout<<count<<endl; } return 0; }
相关文章推荐
- 思达客餐饮管理系统
- Servlet基础
- iOS事务的基本概念
- swust oj 2474 F(k)
- 八皇后问题(python版理解)
- Java Calendar 类的时间操作
- gcc 编译器常用的命令行参数一览
- 2015-2016 下半学期 第二周 训练(2)
- 杭电ACM1218——Blurred Vision
- ACM之马踏棋盘(DFS)
- 四位辉光管时钟-学长毕设
- hdu 1007 Quoit Design (最近点对)
- Apache 配置二级域名匹配目录及多个站点配置 +阿里云服务器如何解析添加二级域名
- LightOJ 1073 DNA Sequence (状压DP+字符串比较)
- hdu3336kmp,dp
- 解决Linux Fedora 虚拟机root用户登录提示"鉴定故障"的问题
- 垂直,水平居中代码,自用
- 5-31 字符串循环左移
- LeetCode#103. Binary Tree Zigzag Level Order Traversal My Submissions Question
- Cmake系列:如何使用CMake编译自己项目