码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1016 Prime Ring Problem

时间:2014-08-18 00:07:03      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   ar   

在刚刚写完代码的时候才发现我以前交过这道题,可是没有过。

后来因为不理解代码,于是也就不了了之了。

可说呢,那时的我哪知道什么DFS深搜的东西啊,而且对递归的理解也很肤浅。

 

这道题应该算HDU 2610 Sequence one的简化版,判重也非常简单。

其他也没有什么好说的了,直接上代码吧。

 

bubuko.com,布布扣
 1 //#define LOCAL
 2 #include <iostream>
 3 #include <cstdio>
 4 #include <cstring>
 5 #include <cmath>
 6 using namespace std;
 7 
 8 int prime[41] = {0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0};
 9 bool visited[21];
10 int n, a[21];
11 
12 void DFS(int dep)
13 {
14     if(dep==n && prime[a[dep-1] + a[0]])
15     {
16         for(int i = 0; i < dep-1; ++i)
17             printf("%d ", a[i]);
18         printf("%d\n", a[dep-1]);
19         return;
20     }
21     for(int i = 2; i <= n; ++i)
22     {
23         if(!visited[i] && prime[a[dep-1] + i])
24         {
25             visited[i] = true;
26             a[dep] = i;
27             DFS(dep + 1);
28             visited[i] = false;
29         }
30     }
31 }
32 
33 int main(void)
34 {
35     #ifdef LOCAL
36         freopen("1016in.txt", "r", stdin);
37     #endif
38 
39     int kase = 0;
40     while(scanf("%d", &n) == 1)
41     {
42         printf("Case %d:\n", ++kase);
43         a[0] = 1;
44         memset(visited, false, sizeof(visited));
45         DFS(1);
46         puts("");
47     }
48     return 0;
49 }
代码君

 

HDU 1016 Prime Ring Problem,布布扣,bubuko.com

HDU 1016 Prime Ring Problem

标签:style   blog   http   color   os   io   for   ar   

原文地址:http://www.cnblogs.com/AOQNRMGYXLMV/p/3918527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!