紫书搜索 例题7-4 UVA
来源:互联网 发布:淘宝女装精品装修图片 编辑:程序博客网 时间:2024/04/27 03:03
题目链接:
https://vjudge.net/problem/UVA-524
题意:
给一个n,要求生成1~n的排列,第一个数是1,相邻的两个数的和是素数,包括第一个和最后一个。
题解:
代码:
#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_backconst int INF = 0x3f3f3f3f;const ll INFLL = 0x3f3f3f3f3f3f3f3fLL;inline ll read(){ ll x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}//////////////////////////////////////////////////////////////////////////const int maxn = 50+10;int n,isp[maxn],A[maxn],vis[maxn];bool is_prime(int x){ int m = sqrt(x); for(int i=2; i<=m; i++) if(x%i==0) return false; return true;}void dfs(int cur){ if(cur == n+1 && isp[A[1]+A[n]]){ printf("%d",A[1]); for(int i=2; i<=n; i++) printf(" %d",A[i]); puts(""); return ; } for(int i=2; i<=n; i++){ if(!vis[i] && (isp[i+A[cur-1]])){ A[cur] = i; vis[i] = 1; dfs(cur+1); vis[i] = 0; } }}int main(){ int cas=1; while(scanf("%d",&n)!=EOF){ if(cas!=1) puts(""); MS(vis); MS(isp); for(int i=2; i<=n*2; i++) isp[i] = is_prime(i); printf("Case %d:\n",cas++); A[1] = 1; dfs(2); } return 0;}
0 0
- 紫书搜索 例题7-4 UVA
- 紫书搜索 例题7-5 UVA
- 紫书搜索 例题7-6 UVA
- 紫书搜索 例题7-9 UVA
- 紫书搜索 例题7-12 UVA
- 紫书搜索 例题7-13 UVA
- 紫书搜索 例题7-10 UVA
- 紫书搜索 习题7-4 UVA
- 紫书例题6-4 UVa 11988 ( 链表
- 紫书例题 10-8 Uva 1262
- 紫书例题 10-26 UVa 11440
- 例题7-4 素数环 UVa 524
- 紫书 例题7-4 UVA 524
- UVA 11464 例题7
- 紫书搜索 习题7-7 UVA
- 紫书搜索 习题7-1 UVA
- 紫书搜索 习题7-2 UVA
- 紫书搜索 习题7-3 UVA
- POJ 2524
- Hibernate—检索策略
- struts-2.3登录设计
- matlab读取、显示.mat文件
- 1710
- 紫书搜索 例题7-4 UVA
- SpringMVC jsp页面表单 与 后台bean的映射关系
- Java的关键字及分类
- Hibernate查询
- makefile多文件编译
- CodeForces 716A
- Eclipse 运行web project,出现Server Tomcat v9.0 Server at localhost failed to start.错误
- 互操作之DotnetFramework跨平台解决方案
- WebMagic(二)----抓取CSDN博客、并打印