3 条题解
-
1
给点个赞呗, 保证是AC ,语言C++98
#include <bits/stdc++.h> using namespace std; const int N = 100; int n, cur, q[N], st[N], isp[N]; void print() { ++ cur; for (int i = 1; i <= n; ++ i) cout << q[i] << ' '; cout << endl; } bool check(int k) { for (int i = 2; i <= sqrt(k); ++ i) if (k % i == 0) return false; return true; } void dfs(int k) { int i; if (cur >= 10) return; if (k <= n) { if (k & 1) i = 3; else i = 2; for (; i <= n; i += 2) { if (!st[i]) { st[i] = 1; q[k] = i; if (isp[q[k - 1] + q[k]])dfs(k + 1); st[i] = 0; } } } else if (isp[1 + q[k - 1]]) print(); } int main() { cin >> n; if (n & 1) return 0; for (int i = 2; i <= 2 * n; ++ i) isp[i] = check(i); q[1] = 1; dfs(2); return 0; }
信息
- ID
- 436
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 9
- 标签
- 递交数
- 332
- 已通过
- 31
- 上传者