【UVa】524 - Prime Ring Problem

UVA524 素数环 Prime Ring Problem DFS 素数环 阅读详情

Problem here

Problem

A ring is composed of n (even number) circles as shown in diagram.
Put natural numbers 1, 2, … , 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

Solution

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

int A[20];
bool vis[20];
int n;
int testcase = 1;

bool is_prime(int n){
    for(int i = 2; i <= sqrt(n); i++)
        if(n % i == 0)
            return false;
        return true;

}

void slove(int cur){
    if(cur == n && is_prime(A[n-1] + A[n])){
        for(int i = 0; i < n; i++){
            if(i == 0)  
                cout << A[i];
            else
                cout << " " << A[i];
        }
        cout << endl;
    }else{
        for(int i = 2; i <= n; i++){
            if(!vis[i] && is_prime(i+A[cur-1])){
                A[cur] = i;
                vis[i] = true;
                slove(cur+1);
                vis[i] = false;
            }
        }
    }
}

int main(){
    while(cin >> n){
        if(testcase > 1)
            cout << endl;
        A[0] = A[n] = 1;
        cout << "Case " << testcase++ << ":" << endl;
        slove(1);
    }

    return 0;
}
Python爬虫实战:用Selenium+ChromeDriver批量抓取政府网站政策文件(附完整代码) 本文详细介绍了使用Python的Selenium和ChromeDriver进行政府网站政策文件批量抓取的实战技巧。从环境配置、动态页面元素定位到分页机制破解和反爬虫策略,提供了完整的解决方案和代码示例,帮助开发者高效获取结构化政策数据。 阅读详情

相关推荐

使用3dmax Morpher制作Unity表情动画

关于游戏人物的面部表情动画 方案一:如果面部骨骼数丰富的话,可以直接做骨骼动画 方案二:采用变形器(3dmax是Morpher,maya是blendshape)修改相应通道的权重值来做表情动画 本文简述方案二的做法。 说明:本文截图中3dsMax版本为2017。笔者第一次使用3dsMax,欢迎指正。 3dmax中导入人物模型,选择需要变形的对象,即head。当前对象附带skin信息。 ...

写作帮助思考 2万+

Prime Ring Problem

A ring is compose of n circles as shown in diagram. Put natural number 1, 2, …, n into each circle separately, and the sum of numbers in two adjacent circles should be a prime. Note: the number o

lshsgbb2333的博客 206

AI 生成 ECU 功能测试用例

本文分享了AI辅助汽车电子测试的实战经验。作者以某车企车身控制器(BCM)项目为例,对比了传统测试用例编写方式(需100小时)与AI辅助方式(仅3个工作日)的效率差异,实现76%的效率提升。文章详细展示了从需求文档生成测试用例的全过程,包括需求文档示例、AI提示词模板和AI生成的完整测试用例表格(涵盖正常功能、边界条件、异常场景等测试类型)。通过具体案例说明如何利用AI快速生成初稿后人工审核优化的方法,为ECU测试工程师提供了可复用的效率提升方案。

小明的博客 878

【HDU 1016】Prime Ring Problem(DFS、素数筛)

思路: 要求每两个相邻数之和都为素数,那么只要每次递归调用DFS时判断之前两个数之和是否为素数,另外注意因为是一个环,最后还要判断一下最后一个数和第一个数之和是否为素数。 程序开始时求出一个素数数组,只需求出50以内的素数即可,因为数据<20,最大的素数和为17+19=36。此处用的是素数筛法(什么是素数筛法?)求素数。 素数筛法概览: 把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉

Chen_yuazzy的博客 2260

Ubuntu1804 关于ubuntu18.04下载软件仓库信息失败,请检查网络连接 的解决方案

今天电脑在更换软件源的时候遇到了这个问题。出现了如上图所示的错误信息。 尝试了各家优快云的博客之后,发现方法大同小异,均无法解决。 方法大多都是要求更换软件源,如下所示: 打开“Ubuntu软件中心”-->点击“编辑”-->点击“软件源”-->在Ubuntu软件界面,“下载自”默认是“中国的服务器”,改为“主服务器”试试 2.打开更新管理器-》设置-》选择站点-》...

weixin_43729409的博客 1万+

Hive数据迁移

【迁移背景】 本次需要将老集群的hive数据(共30多张表)迁移至新集群中。 老集群版本为CDH5.13,未启用kerberos; 新集群版本为CDH5.14,启用了kerberos。 由于cloudera官方文档说明,在5.x的版本不支持从未启用kerberos的集群与启用了kerberos的集群之间的数据复制。因此无法通过bdr方式进行数据同步。于是采用手工方式进行测试验证。 第一步...

wangkuangood3200的专栏 469

Prime Ring Problem(经典回溯法)

Problem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, …, n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.Note

feng_zhiyu的博客 2990

5G MBS(组播广播服务)深度解析:从标准架构到商用实践

5G MBS(组播广播服务)深度解析:从标准架构到商用实践

大家好,我是码农老gou,一名专注于编程技术的程序员。在这个博客中,我将与大家分享我在工作和学习中的经验、见解以及一些实用的技术干货。 1080

Prime Ring Problem-DFS

#include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;algorithm&gt; using namespace std; int num[100100],vis[100100]; int n; int prim(int x)//x是否为素数 { for(int i=2;i*i&lt;=x;i++) if(x%i=...

flowingfish的博客 187

DaVinci Developer和DaVinci Configurator:AutoSAR开发与配置工具

a. 组件创建:DaVinci Developer允许开发人员创建不同类型的AutoSAR软件组件,如应用软件组件(Application Software Component,SWC)、基础软件组件(Basic Software Component,BSWC)等。除了以上功能,DaVinci Developer和DaVinci Configurator还提供了丰富的文档和代码生成功能,以支持开发人员和配置人员进行文档编写、代码生成和文档浏览等任务。用户可以根据具体需求对软件组件进行灵活的配置。

HmoaAmp的博客 2261

GEE案例教程:融合Sentinel-1 SAR数据、Sentinel-2光学影像和WorldPop人口数据,构建完整的洪水监测与影响评估工作流

本文介绍了一个专为巴基斯坦哈扎拉分区设计的洪水监测系统,该系统整合了Sentinel-1 SAR数据、Sentinel-2光学影像和WorldPop人口数据等多源遥感数据。系统通过VV极化SAR数据的水体提取算法(阈值-13dB)实现洪水范围监测,结合10米分辨率的光学影像进行可视化验证,并利用100米分辨率人口数据评估受灾人口。系统提供完整的技术实现,包括研究区加载、遥感数据处理、日期选择界面和洪水变化检测等功能模块,为灾害应急响应提供科学依据。

此星光明博客 191

HDU1016 Prime Ring Problem 简单dfs

数据比较小,可以先枚举出范围内所有的素数用来作判断。注意递归条件。 1 #include<stdio.h> 2 int n; 3 int a[20],v[20]; 4 int prime[12]={2,3,5,7,11,13,17,19,23,29,31,37}; 5 int check(int a) 6 { 7 for(int i=0;i&lt...

weixin_30505751的博客 136

ISP算法:宽动态HDR

动态范围(Dynamic Range):在很多领域来表示某个变量的最大值和最小值的比值。在数字图像处理领域里,动态范围也被称为图像对比度,表示图像可以显示范围内,像素最大亮度值和最小亮度值的比值。 高动态范围图像(High Dynamic Range Image): 可以反映真实场景中高动态范围亮度信息图像。 高动态技术:能自动调整图像动态范围的一种技术。该技术是一种利用计算机高速运算产生高

a200800170331的专栏 1万+

例题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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

uva 524 Prime Ring Problem

此题比较坑 原因是题目没说明 输出格式 // // main.cpp // uva 524 - Prime Ring Problem // // Created by XD on 15/7/26. // Copyright (c) 2015年 XD. All rights reserved. #include #include #include #include #in

最爱她! 297

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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的博客 791

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

UVa 524 Prime Ring Problem(素数环)

题目链接:UVa 524 题意: 输入正整数n,把正整数1~n组成一个环,使得相邻两个整数之和均为素数。输出时从整数1开始逆时针排列。同一个环应恰好输出一次。n 分析: 简单BFS. 注意: 两测试案例之间有一行空格,输出数据之间有空格,行末无空格 CODE: #include #include #include #include #include #incl

ramay7 723

UVa 524 Prime Ring Problem

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

寂静山林 196

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

题目连接 :https://vj.ti12z.cn/fd5e336dbfda2775780486ea45633879?v=1557301401 #include<iostream> #include<cstring> #include<cmath> using namespace std; const int MAX = 1005 ; bool isp...

森宝的博客 369

Prime Ring Problem UVA - 524(回溯)

打印所有素数环,数值都是1-n。回溯算法,素数筛。先打表。然后dfs:先看看两数只和是不是素数(查表),然后再往下递归,另外已经用过的数字不能出现第二次,用布尔数组下标当做数,布尔值来表示能不能访问。递归完之后别忘了还原之前的数值。

Crushlikearush的博客 177

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

Prime Ring Problem  A ring is composed of n (even number) circles as shown in diagram. Put natural numbers  into each circle separately, and the sum of numbers in two adjacent circles s

爆米 745
上一篇: 【UVa】12325 - Zombie's Treasure Chest
下一篇: 【HDU】畅通工程
「已注销」
博客等级 码龄12年 1粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值