UVA - 524 Prime Ring Problem (经典回溯问题)

零基础手把手教你做FMEDA 本文通过分步骤手把手来教大家具体如何做FMEDA,希望对工作中要做FMEDA的童鞋有帮助。对于工作当中用不到FMEDA的童鞋,也可以作为科普知识,更好地了解一下FMEDA及硬件功能安全。 阅读详情

  Prime Ring Problem 

A ring is composed of n (even number) circles as shown in diagram. Put natural numbers $1, 2, \dots, n$ into each circle separately, and the sum of numbers in two adjacent circles should be a prime.


Note: the number of first circle should always be 1.

Input 

n (0 < n <= 16)

Output 

The output format is shown as sample below. Each row represents a series of circle numbers in the ring beginning from 1 clockwisely and anticlockwisely. The order of numbers must satisfy the above requirements.


You are to write a program that completes above process.

Sample Input 

6
8

Sample Output 

Case 1:
1 4 3 2 5 6
1 6 5 2 3 4

Case 2:
1 2 3 8 5 6 7 4
1 2 5 8 3 4 7 6
1 4 7 6 5 8 3 2
1 6 7 4 3 8 5 2


题目大意:输入正整数n,把1,2,3,……n组成一个环,使得相邻的两个整数之和均为素数。输出时从整数1开始逆时针排列,同一个换恰好输出一次。n<=16

解析:本来我是想用全排列,筛选出素数环的,但是无奈,时间效率比较低。于是参考了刘汝佳的题解敲了一遍,加深了对于回溯的认识。


#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int N = 50;
int isp[N];
int A[N];
int vis[N];
int n;
int is_prime(int n) {
	for(int i = 2; i <= sqrt(n); i++) {
		if( n % i == 0) {
			return 0;
		}
	}
	return n;
}
void dfs(int cur) {
	if(cur == n && isp[A[0] + A[n-1]]) { //递归边界
		for(int i = 0; i < n; i++) {
			printf("%d", A[i]);
			if( i != n-1) {
				printf(" ");
			}
		}
		printf("\n");
	}else {
		for(int i = 2; i <= n; i++) {
			if( !vis[i] && isp[i+A[cur-1]] ) { //如果i没有用过,并且与前一个数之和为素数
				A[cur] = i;
				vis[i] = 1;
				dfs(cur+1);
				vis[i] = 0;
			}
		}
	}
}
int main() {
	int cas = 0;
	isp[0] = 0;
	isp[1] = 0;
	for(int i = 2; i < N; i++) {
		isp[i] = is_prime(i);
	}
	while( scanf("%d",&n) != EOF) {
		memset(vis,0,sizeof(vis));
		if(cas++) {
			printf("\n");
		}
		for(int i = 0; i < n; i++) {
			A[i] = i+1;
		}
		printf("Case %d:\n",cas);
		dfs(1);
	}
	return 0;
}


html一号店项目代码,项目一号店素材(html模板) 【实例简介】【实例截图】【核心代码】oneShop├── css│ ├── ShopShow.css│ ├── base.css│ ├── load.css│ ├── logo.css│ ├── register.css│ └── style.css├── detail.html├── images│ ├── Thumbs.db│ ├── a_close.png│... 阅读详情

相关推荐

视频异常检测 5 大经典数据集实战对比:UCSD Ped2 vs CUHK Avenue vs Street Scene

本文深入对比分析了视频异常检测领域的五大经典数据集,包括UCSD Ped2、CUHK Avenue和Street Scene等,从场景复杂度、异常类型和标注质量等多维度进行实战评估。通过详细的数据集特性解析和计算效率测试,为研究者和工程师提供选型指导,帮助优化算法在智能监控和安防领域的应用效果。

weixin_33800463的博客 409

UVa 524 - Prime Ring Problem

题目:把1-n,连续的放到一个环里,使相邻的数字和为素数,输出所有结果。 分析:搜索+剪枝。如果裸搜,用dancing-links那种拆装的链表,应该差不多满足16的数据量。             这里利用一个性质进行剪枝:相邻的数字一定是奇偶性不同的数字。             (如果上述假设不成立,则存在相邻的奇数或偶数,那么他们的和一定是大于2的偶数,不是素数)        

小白菜又菜 2884

Costas环参数调优指南:QPSK载波同步中的环路滤波器设计技巧

本文深入解析QPSK载波同步中Costas环的参数调优,特别是环路滤波器的设计技巧。通过分析星座图异常现象,提供从理论计算到MATLAB仿真的实战调优指南,涵盖环路带宽、阻尼系数等关键参数在不同信噪比场景下的选择策略,旨在解决载波同步失锁、性能下降等工程难题。

weixin_29035147的博客 546

「UVA524」 Prime Ring Problem 质数环

Description 输入正整数n,把整数1,2,…,n组成一个环,使得相邻两个整数之和均为素数。输出时,从整数1开始逆时针排列。同一个环恰好输出一次。n<=16. A ring is composed of n (even number) circles as shown in diagram. Put natural numbers...

ali39380的博客 211

数据结构实验1.2—高精度计算PI值(西工大)

这是数据结构第二题的题目,是让我们根据用户的需求来计算派的值 这是题目的详细描述,刚看到这道题的时候,我是真的头大,完全没有思路,于是查找了一些大佬的笔记后才开始编写 这是我在写这些代码是所运用到的数学反三角函数幂次展开式的知识。 下面是正确的代码以及我的一些见解,和需要注意的一些地方。希望能对你有所帮助。如有更加精简的算法,请在评论区留下你的算法!!!谢谢!!! #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdl

abcdef0623的博客 5831

从厘米级到公里级:北斗网格10级精度在ArcPro中的完整应用指南

本文提供了北斗网格十级精度体系在ArcGIS Pro中的完整应用指南。详细解析了从660公里到1.5厘米的十级网格尺度及其编码逻辑,并重点演示了如何在ArcPro中生成网格、计算编码,以及根据项目需求(如滑坡监测)选择合适精度层级的实战策略。指南旨在帮助GIS专业人士利用这套统一的网格框架,高效管理多尺度空间数据并优化分析工作流。

Black的专栏 471

uva-524 Prime Ring Problem 回溯法

回溯法搜索+素数判断 本题的输出格式及其坑,需要注意 #include&lt;cstdio&gt; #include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;cmath&gt; using namespace std; int vis[20]; int cur=0; int ans[20]; int n; bool pri...

? 289

保姆级教程:用xmir-patcher一键解锁Redmi AX3000路由器的SSH(附视频演示)

本文提供Redmi AX3000路由器SSH解锁的保姆级教程,详细介绍了使用xmir-patcher工具一键解锁SSH的步骤,包括环境搭建、工具获取、图形化操作详解及常见问题排查。解锁后,用户可通过SSH连接实现刷机、插件安装、网络优化等高级功能,提升路由器性能。

weixin_29216049的博客 729

UVa - 524 - Prime Ring Problem

回溯法直接搞定,注意判断素数的时候为了提高效率,直接查到小于50的素数手工打表了。。。这个方法在校赛的时候也曾经用过,当时因为超时,直接找了前2000个素数打表。。。 注意:如果最坏情况下的枚举量很大,应该使用回溯法而不是生成-测试法。

yofer张耀琦的专栏 1052

智能家居DIY:用51单片机实现三合一环境监测(温湿度+烟雾+自动灭火)

本文详细介绍了如何利用STC89C52单片机打造智能家居三合一环境监测系统,集成温湿度检测、烟雾报警和自动灭火功能。从硬件选型、电路设计到软件编程,提供完整的DIY方案,帮助读者构建高性价比的家庭安全防护系统,特别适合智能家居爱好者和电子DIY初学者。

yhn4567890的博客 690

华为OD机试 - 小火车最多人时所在园区站点(Java 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 996

UVA - 524 Prime Ring Problem

题目链接: UVA - 524 Prime Ring Problem Description(素数环) A ring is composed of n (even number) circles as shown in diagram. Put natural numbers 1,2,…,n1, 2, \dots, n into each circle separately, and the

Dextrad_ihacker的博客 792

从业务角色到工作台:一步步创建 SAP Fiori Launchpad Space 与 Page

SAP S/4HANA Launchpad 配置优化指南:从业务角色出发构建高效工作台 本文针对S/4HANA项目中用户普遍反映的"入口难找"问题,提出基于Spaces和Pages的系统化解决方案。通过"以工作岗位为中心"的设计理念,将Launchpad信息架构重构为:一个业务角色对应一个Space,每个Space包含1-5个Page,Page内按任务划分2-5个Section,每个Section放置3-7个Tiles。文章详细阐述了从Business Role入手配

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 224

例题7-4 UVA524 Prime Ring Problem(28行AC代码)

紫书刷题进行中,题解系列【GitHub|优快云】 例题7-4 UVA524 Prime Ring Problem(28行AC代码) 题目大意 给定n个数,标号为1,2,3,…,n,问n个数能否构成这样一个环:任意两个相邻数和为素数 思路分析 本质是求2~n的全排列,在构造过程中利用相邻和为素数进行剪枝 因为n最大为16,两数之和最大为31,因此可手动写出2~31的素数,便于查询 AC代码(C++...

努力做个书呆儿 244

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

UVa524 例题7-4 素数环 (Prime Ring Problem)

题目大意:  模输入正整数n,把整数1,2,3...,n,组成一个环,使得相邻的两个整数之和均为素数,输出从整数1开始逆时针排序。同一个环应恰好输出一次.n                                    解题思路:  本题是《算法竞赛入门经典》第五章c++与STL的课后题,所以我当然首先想如何需要用什么STL容器去解决问题,经过思考

Miracle42的博客 1529

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

UVA - 524 Prime Ring Problem(dfs回溯法)

UVA - 524 Prime Ring Problem Time Limit:3000MSMemory Limit:0KB64bit IO Format:%lld & %llu Description A ring is composed of n (even number) circles ...

Dara2015的博客 197

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

UVa524 Prime Ring Problem (回溯法练习)

UVa524 Prime Ring Problem (回溯法练习) 一些训练时候的小心得,记录记录。 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int is_prime(int x) { //这个判断素数的函数很好有意思 for(int i =...

lins的博客 151

UVA 524素数环

Prime Ring Problem  UVA - 524  Sample Input 6 8 Sample Output Case 1: 1 4 3 2 5 6 1 6 5 2 3 4   Case 2: 1 2 3 8 5 6 7 4 1 2 5 8 3 4 7 6 1 4 7 6 5 8 3 2 1 6 7 4 3 8 5 2 这道题紫书上介绍了两种方法:全排列 ...

cjh1459463496的博客 371

UVa 524 素数环(Prime Ring Problem)

输入正整数n, 把整数1,2,3,……,n组成一个环,使得相邻两个整数之和均为素数。输出时从1开始逆时针排列,同一个环应该只输出一个。 样例输入: 6 样例输出: 1 4 3 2 5 6 1 6 5 2 3 4 因为输入的n不超过16 因此素数的大小应该不会超过 16 + 15 = 31 设置一个素数数组,避免屡次判断超时。 设置一个vis数组,因为素数环每个数字只出现一次,因此用一个 vis数组...

Inuyasha__的博客 347

UVa 524 - Prime Ring Problem(回溯)

回溯法的简单应用。

ZmiL_ 1371

UVa 524 Prime Ring Problem

本文解决素数环问题:将1到n的偶数个整数排成环,使相邻数之和为素数。首数固定为1,需输出所有满足条件的排列。采用回溯算法,预先生成素数表进行剪枝优化。算法从位置0开始,依次填入未使用的数字,确保相邻和及首尾和为素数。代码实现中,使用深度优先搜索回溯,按字典序输出结果。对于n≤16的数据规模,通过素数约束有效降低搜索空间复杂度。

寂静山林 196

洛谷-UVA524 素数环 Prime Ring Problem

题意: 输入正整数n,把整数1,2,…,n组成一个环,使得相邻两个整数之和均为素数。输出时,从整数1开始逆时针排列。同一个环恰好输出一次。n<=16. 多组数据,读入到EOF结束。 第i组数据输出前加上一行Case i: 相邻两组数据中间加上一个空行。 输入输出样例 输入 #1 复制 6 8 输出 #1 复制 Case 1: 1 4 3 2 5 6 1 6 5 2 3 4 Case 2...

zqhf123的博客 710

UVA524 素数环 Prime Ring Problem

题目OJ地址: https://www.luogu.org/problemnew/show/UVA524 hdu oj 1016: https://vjudge.net/problem/HDU-1016 zoj 1457 :https://vjudge.net/problem/ZOJ-1457 题意翻译 输入正整数n,把整数1,2,...,n组成一个环,使得相邻两个整数之和均为素数。...

weixin_30648587的博客 153

【UVA524】Prime Ring Problem(素数环--递归回溯+全局变量的一个小坑点---水题)

题目:https://vjudge.net/problem/UVA-524 这道题我十个月之前做过,但是当时的代码并不是自己打出来了,对回溯递归之类的也不是很懂。 现在我重新自己手打这道题,却发现了一个小坑点,找了好久才找到。。 ac代码: 注意看第46行的int i=2,一定要加int!!因为之前int定义的是全局变量,所有后续的一些操作会改变i的值,回溯时的vis[i]就不再是对应的进...

Cassie_zkq的博客 464

Prime Ring Problem uva 524

回溯法的应用 # include<iostream> # include<cstring> using namespace std; const int maxn=100+5; bool isprim[maxn]; int a[maxn]; int n; bool vis[maxn]; bool prim(int i) { for(int j=2;j<i;j++...

艾克 248

Prime Ring Problem UVA - 524 回溯

A ring is composed of n (even number) circles as shown in diagram.Put natural numbers 1, 2, . . . , n into each circle separately, and thesum of numbers in two adjacent circles should be a prime.Note:...

lesfhappy的博客 227
上一篇: HDU - 2553 N皇后问题 (初试回溯)
下一篇: 回溯法算法框架及基础
HelloWorld10086
博客等级 码龄12年 88粉丝 614原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值