首页 > 代码库 > 【Codevs1080】质数环
【Codevs1080】质数环
http://codevs.cn/problem/1031/
不讲什么,预处理素数+搜索
// <C.cpp> - Sun Oct 9 12:58:23 2016// This file is made by YJinpeng,created by XuYike‘s black technology automatically.// Copyright (C) 2016 ChangJun High School, Inc.// I don‘t know what this program is.#include <iostream>#include <vector>#include <algorithm>#include <cstring>#include <cstdio>#include <cstdlib>#include <cmath>#define MOD 1000000007#define INF 1e9using namespace std;typedef long long LL;const int MAXN=110;inline int gi() { register int w=0,q=0;register char ch=getchar(); while((ch<‘0‘||ch>‘9‘)&&ch!=‘-‘)ch=getchar(); if(ch==‘-‘)q=1,ch=getchar(); while(ch>=‘0‘&&ch<=‘9‘)w=w*10+ch-‘0‘,ch=getchar(); return q?-w:w;}bool f[MAXN],u[MAXN];int a[MAXN],n;void dfs(int d){ if(n==d){ if(f[a[d-1]+1]){ for(int i=0;i<n;i++)printf("%d ",a[i]); printf("\n"); }return; } for(int i=2;i<=n;i++) if(!u[i]&&f[i+a[d-1]]){ u[i]=1;a[d]=i; dfs(d+1);u[i]=0; }}int main(){ freopen("1031.in","r",stdin); freopen("1031.out","w",stdout); n=gi(); u[1]=(bool)(a[0]=1); for(int i=2;f[i]=1,i<MAXN;i++) for(int j=2,to=sqrt(i);j<=to;j++) if(i%j==0){f[i]=0;break;} dfs(1); return 0;}
【Codevs1080】质数环
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。