zoukankan      html  css  js  c++  java
  • 【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 1e9
    using 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("
    ");
            }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;
    }
  • 相关阅读:
    4.9新随笔
    4.2上机作业
    3.30作业
    3.26上机练习
    作业十
    作业九
    作业八
    作业六
    作业五
    作业三
  • 原文地址:https://www.cnblogs.com/YJinpeng/p/5971014.html
Copyright © 2011-2022 走看看