zoukankan      html  css  js  c++  java
  • hdu1016Prime Ring Problem

    http://acm.hdu.edu.cn/showproblem.php?pid=1016

    这几天做题第一次一次性AC 自信心上涨

    简单dfs

    一个大圈 中有n个小圈 填进去数 相邻圈中数的和为素数

    View Code
     1 #include <stdio.h>
     2 #include<string.h>
     3 int x[21][21],v,f,y[21],c[21],n;
     4 int prime(int x)
     5 {
     6     int i,flag = 1;
     7     for(i = 2; i < x ; i++)
     8         if(x%i == 0)
     9         {
    10             flag = 0;
    11             break;
    12         }
    13     return flag;
    14 }
    15 void dfs(int i, int v)
    16 {
    17     int j;
    18     y[v] = i;
    19     if(v==n-1)
    20     {
    21         for(i = 0; i < n ; i++)
    22         {
    23             if(i!=0)
    24             printf(" ");
    25             printf("%d", y[i]);
    26         }
    27         printf("\n");
    28     }
    29     else
    30     {
    31         for(j = 2 ; j <= n ; j++)
    32             if(prime(i+j)&&c[j] == 0)
    33             {
    34                 if(v == n-2)
    35                 if(!prime(1+j))
    36                 return;
    37                 c[j] = 1;
    38                 dfs(j,v+1);
    39                 c[j] = 0;
    40             }
    41     }
    42 }
    43 int main()
    44 {
    45     int i, j,k = 0;
    46     while(scanf("%d", &n)!=EOF)
    47     {
    48         memset(x,0,sizeof(x));
    49         memset(c,0,sizeof(c));
    50         k++;
    51         y[0] = 1;
    52         c[1] = 1;
    53         printf("Case %d:\n",k);
    54         dfs(1,0);
    55         puts("");
    56     }
    57     return 0;
    58 }
  • 相关阅读:
    015-面向对象
    017-错误和异常
    019-File
    020-OS
    021-模块
    022-标准库
    数据库目录
    数据库 概念详解
    MySQL 基础
    MySQL 数据库操作
  • 原文地址:https://www.cnblogs.com/shangyu/p/2586866.html
Copyright © 2011-2022 走看看