UVA-542 Prime Ring Problem
来源:互联网 发布:戴着镣铐的舞蹈 知乎 编辑:程序博客网 时间:2024/06/16 12:08
#include<cstdio>#include<iostream>#include<cstring>using namespace std;const int maxn = 1000;int prime[maxn];int A[maxn];int vis[maxn];int is_prime(int x)//生成素数{ for(int i = 2; i*i <= x; i++) if(x%i == 0) return 0; return 1;}void dfs(int n, int cur){// for(int i = 1; i <= cur; i++)// printf(i==1 ? "%d" : " %d", A[i]);// printf("\n"); if(n < cur && prime[A[n]+1])//判断首尾和是素数 { for(int i = 1; i <= n; i++) printf(i==1 ? "%d" : " %d", A[i]); printf("\n"); return; } else { for(int i = 2; i <= n; i++) { if(prime[A[cur-1]+i] && !vis[i]) //保证相邻的两个数是素数而且没有重复的数 { vis[i] = 1; A[cur] = i; dfs(n, cur+1); vis[i] = 0; A[cur] = 0; } } }}int main(){ int n; for(int i = 2; i <= maxn; i++) prime[i] = is_prime(i);// for(int i = 0; i <= maxn; i++)// cout << prime[i] << endl; int t = 0; while(scanf("%d", &n) == 1 && n) { memset(A, 0, sizeof(A)); memset(vis, 0, sizeof(vis)); if(t) printf("\n"); printf("Case %d:\n", t+1); A[1] = 1; dfs(n, 2); t++; } return 0;}
阅读全文
0 0
- UVA-542 Prime Ring Problem
- Prime Ring Problem UVA
- Prime Ring Problem UVA
- Prime Ring Problem UVA
- UVA 524 - Prime Ring Problem
- uva 524 - Prime Ring Problem
- uva 524 Prime Ring Problem
- UVa:524 Prime Ring Problem
- uva 524 - Prime Ring Problem
- UVa 524 - Prime Ring Problem
- uva 724 Prime Ring Problem
- UVA - 524 Prime Ring Problem
- UVa-524 - Prime Ring Problem
- UVA - 524 Prime Ring Problem
- UVa - 524 - Prime Ring Problem
- UVA - 524 Prime Ring Problem
- uva 524Prime Ring Problem
- uva 524 - Prime Ring Problem
- windows svn 客户端解决方案
- String,StringBuffer ,StringBuilder 区别
- 将TexturePacker制作的.pvr.ccz和.plist文件还原为多个原图
- java基础--5.集合-7.Map接口
- 深入理解mybatis原理(一) Mybatis初始化机制详解
- UVA-542 Prime Ring Problem
- 基于JSP的分页技术基础
- MySQL数据库(32)
- Spark-sparksql-自定义udf
- kotlin-配置
- 深入理解mybatis原理(二) 关联查询
- 设备驱动调试和移植的一般方法
- 结构体符号重载(简单版+手动扩栈方法)
- C++ 标准库概览