zoukankan      html  css  js  c++  java
  • [NWPU2016][寒假作业][正常版第三组]I

    素数环,简单的dfs,但这道题我有个小地方写错了半天发现不了。。就是flag数组的位置。一定要放在if里面,刚开始没注意,一不小心写到外面了。

    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    #include <map>
    #include <string>
    #include <string.h>
    #include <queue>
    #include <vector>
    #include <set>
    #include <cmath>
    #define inf 0x7fffffff
    #define N 10000
    using namespace std;
    int n,h,a[10000],flag[10000];
    bool prime[N];
    void isprime(){
    int i,j;
       for(i=2; i<N; i++)
      if(i%2) prime[i]=true;
      else prime[i]=false;
       for(i=3; i<=sqrt(N); i++)
       {   if(prime[i])
           for(j=i+i; j<N; j+=i) prime[j]=false;
       }
       prime[2]=true;
    }
    void dfs(int m)
    {
         if(m==n+1)
         {
            for(int j=1;j<n;j++)
                printf("%d ",a[j]);
                printf("%d
    ",a[n]);
         }
         else {
            for(int i=2;i<=n;i++)
            {
                    if((!flag[i]&&prime[i+a[m-1]]&&m!=n)||(!flag[i]&&m==n&&prime[i+a[m-1]]&&prime[i+a[1]]))
                    {
                       a[m]=i;
                       flag[i]=1;
                       dfs(m+1);
                       flag[i]=0;
                    }
            }
         }
    }
    int main()
    {
        isprime();
        while(scanf("%d",&n)!=EOF)
        {
            a[1]=1;
            memset(flag,0,sizeof(flag));
            printf("Case %d:
    ",++h);
            dfs(2);
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    Python Day23
    Python Day22
    Python Day21
    Python Day20
    Python Day19
    Python Day18
    Python Day17
    python全栈开发 * 18 面向对象知识点汇总 * 180530
    python全栈开发 * 15知识点汇总 * 180621
    python全栈开发 * 14 知识点汇总 * 180530
  • 原文地址:https://www.cnblogs.com/GeniusYang/p/5185691.html
Copyright © 2011-2022 走看看