输入正整数n,把整数1,2,3,···n组成一个环,使得相邻两个整数之和均为素数。输出时从整数1开始逆时针排列。同一个环应恰好输出一次。n16。

回溯法

#include<iostream>
#include <string>
#include <string.h>
#include<math.h>using namespace std;
int vis[16+5]; int n; int tot = 0; int c[16+5]; int isp[40];
void dfs(int cur) {if (cur == n && isp[c[0] + c[n - 1]]) {for (int i = 0; i < n-1; i++)cout << c[i] << " ";cout << c[n - 1];cout << endl;}elsefor (int i = 2; i <= n; i++) {if (!vis[i] && isp[c[cur-1] + i]) {//头节点是确定的vis[i] = 1;c[cur] = i;dfs(cur + 1);vis[i] = 0;   //循环遍历每一种情况}}
}
int main()
{
#ifdef LOCALfreopen("data.in", "r", stdin);//scanffreopen("data.out", "w", stdout);//printf
#endifint kase = 0;for (int i = 1; i <= 2 * 16; i++) {bool isok = true;for (int j = 2; j <= sqrt(i); j++) {if (i%j == 0)isok = false;}if (isok)isp[i] = 1;}while (scanf("%d", &n)==1&&n) {if(kase)cout<<endl;kase++;cout << "Case " << kase << ":"<<endl;memset(vis, 0, sizeof(vis));memset(c, 0, sizeof(c));c[0] = 1;dfs(1);//cout << endl;}//system("pause");return 0;
}

UVA524 PrimeRingProblem素数环相关推荐

  1. (回溯Uva524)素数环

    题目 输入正整数,把整数1,2,3,···,n组成一个环,使得相邻两个整数之和均为素数.输出时从整数1开始逆时针排列.同一个环应恰好输出一次.n<=16 样例输入 6 样例输出 1 4 3 2 ...

  2. UVA524 素数环 Prime Ring Problem

    UVA524 素数环 Prime Ring Problem - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/UVA52 ...

  3. CCF NOI1153 素数环

    问题链接:CCF NOI1153 素数环. 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 输入n(2<=n<=20),把1到n这n个数摆成一个环,要求相邻的两个数 ...

  4. HDOJ1016 素数环(DFS)

    题目: 1016 Prime Ring Problem 1 /* 2 素数环(顺时针逆时针)---dfs 3 使用栈 4 1-n(n最大是20,相邻最大和39,素数范围2-39之间) 5 2-39间的 ...

  5. 素数环-dfs回溯+二维数组记录(c++实现)

    问题描述: 给你n(2<=n<=16)个正整数1,2,3-n,你的任务是把这n个正整数组成一个环,使得任意相邻的两个整数之和为一个素数,输出有多少种合法方案. 输入 多组输入数据,每组数据 ...

  6. 素数环(nyoj488)

    素数环 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环. 为了简便起 ...

  7. 素数环java_素数环问题

    DFS,好像主要是对dfs的递归调用吧,自己也不太懂, 总之,它很神奇,多看看代码吧 #include #include #include #include int n; int isp[100]; ...

  8. rwkj 1422搜索(素数环)

      算法分析与设计:搜索(素数环) 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte 总提交:178            测试通过:35 ...

  9. 杭电ACM_1016_素数环

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1016 (经典的剪枝搜索) 题意: 就是求1~n的一个环(首尾衔接,顺序打乱),使得相邻的两个元素之和 ...

最新文章

  1. 计算机硬件的作用论文,计算机硬件的作用论文.doc
  2. 基于SSM实现校友录管理平台
  3. Android 手把手教您自定义ViewGroup
  4. sql 192标准 连接查询
  5. 动态规划:从新手到专家
  6. html5 canvas裁剪图片,html5-canvas 使用画布裁剪图像
  7. 基于Minio和Thumbor搭建独立图片服务
  8. SQL.H 通过此文件寻找sqlAPI编程的一种捷径
  9. VMware Workstation 15 解锁Mac OS安装
  10. 编写高效优雅Java程序
  11. Nebula3资源子系统
  12. 经典c语言基础代码大全,经典基础实例编程C语言代码.doc
  13. python爬取别人qq空间相册_python+selenium+requests爬取qq空间相册时遇到的问题及解决思路...
  14. 第一台微型计算机处理器位数,微处理器芯片的位数指的是什么 - 全文
  15. (25)TracerWarning: Output nr 1. of the traced function does not match the corresponding output of ..
  16. 本地分支与线上代码发生冲突,导致不能应用最新储藏问题
  17. java osm_osm 数据格式(openstreet map)与Route | 学步园
  18. 输入一个整数,若为奇数则输出其平方根,否则输出其立方根(分别用单分支、双分支和条件运算实现)
  19. fx3u4ad一adp说明书_FX3U-4AD-PT-ADP用户手册FX3U-4AD-PT-ADP使用说明书 - 三菱
  20. linux shell 操作二进制文件(xxd、dd)

热门文章

  1. MyBatis 插件原理与自定义插件-猜想
  2. FlashMapManager
  3. Hive的基本操作-基本查询语法
  4. RestTemplate的三种使用方式
  5. linux系统管理试卷必修B卷,2013-2014Linux系统管理试卷
  6. 200801一阶段1函数封装
  7. __I、__O、__IO什么意思和处于keil里面什么位置
  8. CSS实现【表格内容超过一行的部分,用省略号代替】
  9. iPhone X系列 的获取 - 安全区顶部和底部高度
  10. Linux不得不知道的目录和文件