比赛 |
板子大赛 |
评测结果 |
AAAAA |
题目名称 |
数列问题 |
最终得分 |
100 |
用户昵称 |
喵喵喵 |
运行时间 |
0.106 s |
代码语言 |
C++ |
内存使用 |
3.36 MiB |
提交时间 |
2025-01-22 10:30:02 |
显示代码纯文本
- #include <bits/stdc++.h>
- using namespace std;
- int n;
- int row[16],ind,tot;
- bool vis[16];
- bool prime(int a)
- {
- for(int i = 2;i * i <= a;i++)
- {
- if(a % i == 0)
- {
- return false;
- }
- }
- return true;
- }
- void dfs(int x)
- {
- if(x == n+1)
- {
- for(int i = 0;i < ind;i++)
- {
- cout << row[i] << " ";
- }
- cout << endl;
- tot++;
- return;
- }
- for(int i = 1;i <= n;i++)
- {
- if(ind == 0)
- {
- row[ind] = i;
- vis[i] = 1;
- ind++;
- dfs(x+1);
- row[ind] = 0;
- ind--;
- vis[i] = 0;
- }
- else if(!vis[i] && prime(i + row[ind-1]))
- {
- row[ind] = i;
- vis[i] = 1;
- ind++;
- dfs(x+1);
- row[ind] = 0;
- ind--;
- vis[i] = 0;
- }
- }
- }
-
- int main()
- {
- freopen("dfs3.in","r",stdin);
- freopen("dfs3.out","w",stdout);
- cin >> n;
- dfs(1);
- cout << tot << endl;
- return 0;
- }
-
-
-