题目描述
输入正整数n,把整数1,2,3,…,n组成一个环,使得相邻两个整数之和均为素数。为了阻止大家打表,需要把全部的解按字典序排序后,从1开始编号,依次输出指定编号的k组解。最后一行输出总的方案数。同一个素数环只算一次。
输入格式
第1行:2个整数,n(n<=18) 和 k(1<=k<=10)
第2行:共有k个从小到大排列的整数,表示要输出的解的编号。
输出格式
前k行,每行一组解,对应于一个输入。
第k+1行:一个整数,表示总的方案数。
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 40;
bool p[MAXN], vis[MAXN];
int a[MAXN], b[MAXN], n, ans = 0, k, cnt = 1;
bool prime(int x) {
for(int i

该博客探讨了如何构建素数环的问题,其中每个相邻整数之和为素数。它要求输入正整数n和编号k,按照字典序输出k组解,并给出所有解的总数。解决方案涉及深度优先搜索算法,限制n不超过18,且k不超过10。
最低0.47元/天 解锁文章
4610

被折叠的 条评论
为什么被折叠?



