UVA524 PrimeRingProblem素数环
输入正整数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素数环相关推荐
- (回溯Uva524)素数环
题目 输入正整数,把整数1,2,3,···,n组成一个环,使得相邻两个整数之和均为素数.输出时从整数1开始逆时针排列.同一个环应恰好输出一次.n<=16 样例输入 6 样例输出 1 4 3 2 ...
- UVA524 素数环 Prime Ring Problem
UVA524 素数环 Prime Ring Problem - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/UVA52 ...
- CCF NOI1153 素数环
问题链接:CCF NOI1153 素数环. 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 输入n(2<=n<=20),把1到n这n个数摆成一个环,要求相邻的两个数 ...
- HDOJ1016 素数环(DFS)
题目: 1016 Prime Ring Problem 1 /* 2 素数环(顺时针逆时针)---dfs 3 使用栈 4 1-n(n最大是20,相邻最大和39,素数范围2-39之间) 5 2-39间的 ...
- 素数环-dfs回溯+二维数组记录(c++实现)
问题描述: 给你n(2<=n<=16)个正整数1,2,3-n,你的任务是把这n个正整数组成一个环,使得任意相邻的两个整数之和为一个素数,输出有多少种合法方案. 输入 多组输入数据,每组数据 ...
- 素数环(nyoj488)
素数环 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环. 为了简便起 ...
- 素数环java_素数环问题
DFS,好像主要是对dfs的递归调用吧,自己也不太懂, 总之,它很神奇,多看看代码吧 #include #include #include #include int n; int isp[100]; ...
- rwkj 1422搜索(素数环)
算法分析与设计:搜索(素数环) 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 总提交:178 测试通过:35 ...
- 杭电ACM_1016_素数环
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1016 (经典的剪枝搜索) 题意: 就是求1~n的一个环(首尾衔接,顺序打乱),使得相邻的两个元素之和 ...
最新文章
- 计算机硬件的作用论文,计算机硬件的作用论文.doc
- 基于SSM实现校友录管理平台
- Android 手把手教您自定义ViewGroup
- sql 192标准 连接查询
- 动态规划:从新手到专家
- html5 canvas裁剪图片,html5-canvas 使用画布裁剪图像
- 基于Minio和Thumbor搭建独立图片服务
- SQL.H 通过此文件寻找sqlAPI编程的一种捷径
- VMware Workstation 15 解锁Mac OS安装
- 编写高效优雅Java程序
- Nebula3资源子系统
- 经典c语言基础代码大全,经典基础实例编程C语言代码.doc
- python爬取别人qq空间相册_python+selenium+requests爬取qq空间相册时遇到的问题及解决思路...
- 第一台微型计算机处理器位数,微处理器芯片的位数指的是什么 - 全文
- (25)TracerWarning: Output nr 1. of the traced function does not match the corresponding output of ..
- 本地分支与线上代码发生冲突,导致不能应用最新储藏问题
- java osm_osm 数据格式(openstreet map)与Route | 学步园
- 输入一个整数,若为奇数则输出其平方根,否则输出其立方根(分别用单分支、双分支和条件运算实现)
- fx3u4ad一adp说明书_FX3U-4AD-PT-ADP用户手册FX3U-4AD-PT-ADP使用说明书 - 三菱
- linux shell 操作二进制文件(xxd、dd)