HDU ACM 1 1016 Prime Ring Problem

来源:互联网 发布:阿里巴巴e助手软件 编辑:程序博客网 时间:2024/05/21 08:02
彻底掌握前每天撸一遍
#include <cstdio>#include <algorithm>using namespace std;int Lu[21], Hui[21];int Yi[12] = {2,3,5,7,11,13,17,19,23,29,31,37};int N, num = 1;bool Zheng(int a){for (int i = 0; i < 12; i++)if (a == Yi[i])return true;return false;}void dfs(int a){if (a == N && Zheng(Lu[a - 1] + Lu[0])){for (int i = 0; i < a - 1; i++)printf("%d ", Lu[i]);printf("%d\n", Lu[a - 1]);}for (int i = 2; i <= N; i++){if (Hui[i]){if (Zheng(i + Lu[a - 1])){Hui[i] = 0;Lu[a++] = i;dfs(a);Hui[i] = 1;a--;}}}}int main(){int num = 1;while (scanf("%d", &N) != EOF){printf("Case %d:\n", num++);memset(Hui, 1, sizeof(Hui));Lu[0] = 1;dfs(1);printf("\n");}return 0;}

0 0