比赛 板子大赛 评测结果 AAAAA
题目名称 数列问题 最终得分 100
用户昵称 喵喵喵 运行时间 0.106 s
代码语言 C++ 内存使用 3.36 MiB
提交时间 2025-01-22 10:30:02
显示代码纯文本
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n;
  4. int row[16],ind,tot;
  5. bool vis[16];
  6. bool prime(int a)
  7. {
  8. for(int i = 2;i * i <= a;i++)
  9. {
  10. if(a % i == 0)
  11. {
  12. return false;
  13. }
  14. }
  15. return true;
  16. }
  17. void dfs(int x)
  18. {
  19. if(x == n+1)
  20. {
  21. for(int i = 0;i < ind;i++)
  22. {
  23. cout << row[i] << " ";
  24. }
  25. cout << endl;
  26. tot++;
  27. return;
  28. }
  29. for(int i = 1;i <= n;i++)
  30. {
  31. if(ind == 0)
  32. {
  33. row[ind] = i;
  34. vis[i] = 1;
  35. ind++;
  36. dfs(x+1);
  37. row[ind] = 0;
  38. ind--;
  39. vis[i] = 0;
  40. }
  41. else if(!vis[i] && prime(i + row[ind-1]))
  42. {
  43. row[ind] = i;
  44. vis[i] = 1;
  45. ind++;
  46. dfs(x+1);
  47. row[ind] = 0;
  48. ind--;
  49. vis[i] = 0;
  50. }
  51. }
  52. }
  53.  
  54. int main()
  55. {
  56. freopen("dfs3.in","r",stdin);
  57. freopen("dfs3.out","w",stdout);
  58. cin >> n;
  59. dfs(1);
  60. cout << tot << endl;
  61. return 0;
  62. }
  63.  
  64.  
  65.