题目:https://vjudge.net/problem/UVA-524

这道题我十个月之前做过,但是当时的代码并不是自己打出来了,对回溯递归之类的也不是很懂。

现在我重新自己手打这道题,却发现了一个小坑点,找了好久才找到。。

ac代码:


注意看第46行的int i=2,一定要加int!!因为之前int定义的是全局变量,所有后续的一些操作会改变i的值,回溯时的vis[i]就不再是对应的进入通过if判断条件时的i。

#include <iostream>
#include <cmath>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <sstream>
#define maxn 35
using namespace std;
typedef long long ll;
int  prime[maxn]={0},vis[maxn],ans[maxn];
int i,j,k,n;
void Prime(int N)
{for(i=2;i<=N;i++){bool flag=true;k=(int)sqrt(i);for(j=2;j<=k;j++)if(i%j==0){prime[i]=0;flag=false;break;}if(flag)prime[i]=1;}
}
void search(int cur)
{if(cur==n && prime[ans[n-1]+ans[0]])//输出条件{printf("%d",ans[0]);for(int i=1;i<n;i++)printf(" %d",ans[i]);printf("\n");}else{for(int i=2;i<=n;i++){if(!vis[i] && prime[ans[cur-1]+i])//未被拿出且相邻和为素数{vis[i]=1;ans[cur]=i;search(cur+1);vis[i]=0;}}}
}
int main()
{int num=1;Prime(35);while(scanf("%d",&n)!=EOF){if(num>1) printf("\n");printf("Case %d:\n",num++);memset(vis,0,sizeof(vis));ans[0]=1;vis[1]=1;search(1);}return 0;
}

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

  1. HDU1016 Prime Ring Problem dfs+回溯

    点击打开链接 Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  2. UVA524 素数环 Prime Ring Problem

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

  3. UVA - 524 Prime Ring Problem

    题目链接: UVA - 524 Prime Ring Problem Description(素数环) A ring is composed of n (even number) circles as ...

  4. HDOJ 1016 HDU 1016 Prime Ring Problem ACM 1016 IN HDU

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1016 题目描述: Prime Ring Problem Time Limit: 4000/2000 ...

  5. UVA - 524:Prime Ring Problem

    Prime Ring Problem 来源:UVA 题目 A ring is composed of n (even number) circles as shown in diagram. Put ...

  6. java编程实现素数环_回溯法解决素数环

    #include #include using namespace std;#define N 100000int isp[2 * N];int a[N];int visited[N];int is_ ...

  7. 素数环问题(回溯法)

    素数环是一个计算机程序问题,指的是将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环. 现在要求输入一个n,求n个数围成一圈有多少种素数环,规定第一个 ...

  8. 杭电 Prime Ring Problem

    解题思路: 题目是一道很典型的dfs搜索题目,思路很清晰,很容易想到.想组成这个素数环,要有n步,而每步都有n-i(i是变动的)种可能,所以利用dfs深搜,并融合回溯法,这一步搜不到的话既返回至上一步 ...

  9. [HDOJ1016]Prime Ring Problem

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 原题: A ring is compose of n circles as shown in d ...

  10. hdu 1016 Prime Ring Problem(DFS)

    本题链接:点击打开链接 本题大意: 输入一个数n表示须要查找的数有n个,而且这些数连成一个环,随意两个相邻的数之和都为素数. 解题思路: 就是从1開始对每一个点进行查找,符合条件的点就存到一个数组中, ...

最新文章

  1. php实现用户注册代码,php实现用户注册的代码示例
  2. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第6章-参数不确定的高阶非线性多智能体系统一致性控制
  3. 直播预告 | TCCI追问研讨会第二期:双向脑机接口如何实现?
  4. Todolist总结
  5. B. Light It Up
  6. 使用jsp打印HTTP请求头部所有字段的值
  7. 如何解决用伪元素点击下拉列表触发不了事件的问题
  8. swift之Generics
  9. 苹果商店近期审核的问题
  10. C# 取Visio模型信息的简易方法
  11. 显微镜自动聚焦原理是什么_激光共聚焦显微镜系统的原理和应用讲解
  12. macbook pro 重置SMC
  13. 【python、matlab】sRGB颜色空间与线性sRGB空间转换
  14. Python实现base64编码文件转化为jpg/png/jpeg/格式图片
  15. DCS概念简述——以教学用ABB HT 600控制系统/WinCS为例
  16. 算法【二叉树】学习笔记 - 已知结点数计算可构建出多少种二叉树
  17. 看一遍就理解:order by详解
  18. ASP.NET中的KRE是什么?
  19. 量化对冲基金的国内发展史
  20. MATLAN图像处理之盲去卷积

热门文章

  1. UGUI 优化关于图集,排序等
  2. javaScript原型链继承
  3. phpexcel如何预览数据_可变数据之流水号数据的批量制作与打印
  4. r语言代码html,R语言的R Markdown创建html
  5. android 图片自动移动位置信息,android – 使用翻译动画将ImageView从当前位置移动到固定位置...
  6. php字符串操作整理,PHP学习之整理字符串
  7. 国网376.1协议报文地址域
  8. android studio在夜神上打开_Android Studio 找不到夜神模拟器的解决办法
  9. 解析docx C语言,c语言习题解析【含基础知识讲解】.docx
  10. SparkCore-CacheAndCheckpoint-6