hdu 1016 Prime Ring Problem(dfs)
Prime Ring Problem
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 34799 Accepted Submission(s): 15411
Note: the number of first circle should always be 1.

You are to write a program that completes above process.
Print a blank line after each case.
#include <iostream>
using namespace std;
int a[]= {,},b[],sushu[],n; //a表示素数环中的数字,b用来标记,sushu标记是否是素数
void DFS(int s,int k) //s代表当前循环到第几个数,k标记此时是否是第一次进人深搜函数
{
int i,j;
if(s>n)
{
if(sushu[a[]+a[n]]) //最后一个数字和第一个数字的和
{
for(i=; i<=n; i++) //全部满足,输出这组数据的全部数
{
if(i>) cout<<" ";
cout<<a[i];
}
cout<<endl;
}
else return; //若最后一组数据不满足,则返回上一次循环
}
for(i=; i<=n; i++)
{
if(k)
for(j=; j<; j++) //第一次进来,所有的数字都可以使用
b[j]=;
if(sushu[i+a[s-]]&&b[i]) //i表示当前数字,a[s-1]表示上一个数字。两个数字之和为素数,且没有出现过i这个数字
{
a[s]=i; //s位置上的数字记录为i
b[i]=; //0表示为已使用
DFS(s+,); //一个满足条件,进入下一个数字的选择
b[i]=; //若返回上一层循环,标记已使用了的数字必须还原为未使用
}
}
}
int main()
{
int i,j,t=;
for(i=; i<; i++)
sushu[i]=;
sushu[]=sushu[]=;
for(i=; i<=; i++)
if(sushu[i])
for(j=i+i; j<; j+=i)
sushu[j]=; //素数打表,减少代码运行时间,素数为1,非素数为0
while(cin>>n)
{
cout<<"Case "<<t++<<":"<<endl;
DFS(,);
cout<<endl;
}
return ;
}
hdu 1016 Prime Ring Problem(dfs)的更多相关文章
- hdu 1016 Prime Ring Problem (dfs)
一切见凝视. #include <cstdio> #include <iostream> #include <cstring> #include <algor ...
- hdu 1016 Prime Ring Problem(DFS)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- HDU 1016 Prime Ring Problem(素数环问题)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Jav ...
- HDU 1016 Prime Ring Problem(经典DFS+回溯)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- hdu 1016 Prime Ring Problem(深度优先搜索)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- HDOJ-1016 Prime Ring Problem(DFS)
http://acm.hdu.edu.cn/showproblem.php?pid=1016 题意:输入n,代表有一个包含n个节点的环,在环中的节点中填入1,2...n-1,n,要求填入的数与左边的数 ...
- HDU 1016 Prime Ring Problem (素数筛+DFS)
题目链接 题意 : 就是把n个数安排在环上,要求每两个相邻的数之和一定是素数,第一个数一定是1.输出所有可能的排列. 思路 : 先打个素数表.然后循环去搜..... #include <cstd ...
- HDOJ(HDU).1016 Prime Ring Problem (DFS)
HDOJ(HDU).1016 Prime Ring Problem (DFS) [从零开始DFS(3)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...
- [HDU 1016]--Prime Ring Problem(回溯)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Jav ...
随机推荐
- web前端学习(四)JavaScript学习笔记部分(4)-- JavaScriptDOM对象
1.Javascript-DOM简介 1.1.HTML DOM 1.2.DOM操作HTML 1.2.1.JavaScript能够改变页面中的所有HTML元素 1.2.2.JavaScript能够改变页 ...
- Linux iptables开放特定端口
如果系统已安装则调过安装步骤 查找安装包 yum list | grep iptables 安装iptables yum install iptables-services 重启防火墙使配置文件生效 ...
- 从0开始学习 GitHub 系列之「01.初识 GitHub
转载:http://blog.csdn.net/googdev/article/details/52787516 1. 写在前面 我一直认为 GitHub 是程序员必备技能,程序员应该没有不知道 Gi ...
- laravel学习文档
https://github.com/barryvdh/laravel-debugbar Laravel 精选资源大全 http://laravelacademy.org/post/153.html ...
- 如何用最暴力的方法改写Liferay的原生portlet
最近在论坛上看到有人问如何改写Liferay原有的calendar portlet. 然后研究了一下,直接从portal中把calendar portlet的源码拷贝出来,然后修改再部署上去,但是这个 ...
- WinForm 实现主程序(exe)与其关联类库(*.dll)分开存放
WinForm 实现主程序(exe)与其关联类库(*.dll)分开存放 开发环境: Microsoft Windows 7 SP1 Microsoft.NET Framework 4.0 ( ...
- Ubuntu16.04安装Caffe最全最详细教程(CPU)
转载请附上本文链接:https://www.cnblogs.com/acgoto/p/11570188.html 一.前言 为了安装caffe,本人已经在centos7.x上试错了1次,目前弃疗~:在 ...
- iOS 9 学习系列:Storyboard References
http://www.cocoachina.com/ios/20150922/13474.html 如果你曾经使用 interface builder 创建过一个复杂.界面非常多的应用,你就会明白最后 ...
- @codeforces - 932G@ Palindrome Partition
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个字符串 s,求有多少种方案可将其划分成偶数个段 \(p_ ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十章:混合
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十章:混合 代码工程地址: https://github.com/j ...