Prime Ring Problem -- 第一个真正意义上的 搜索
这个搜索............搜的我头都大了.......不过还是 懂了那么一点点...哈哈
从3/7晚上 做到3/8晚上------从女生到妇女 我都用来做着一道题了.........
所谓的 深度优先搜索 还是 递归调用自身 关键思想是
在上面写出 满足 条件的 情况 例如 if 然后怎么怎么 然后 不满足的话 继续 调整 一点一点继续 调用尝试 如果发现 不合适的话 在调用的 后面 重新 将数据还原成 没有 尝试 时 的 样子 ,,,,,,just so so
明天据需努力 先开始 N 皇后问题 听说 和这一道题 挺像的 .
奇数的话除了 1 其余的都是无解
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<stack>
#include<string>
#include<sstream>
#include<map>
#include<cctype>
using namespace std;
bool isPrime(int num)
{
if (num == || num == )
{
return true;
}
if (num % != && num % != )
{
return false;
}
for (int i = ; i*i <= num; i += )
{
if (num % i == || num % (i+) == )
{
return false;
}
}
return true;
}
int n,a[],mark=,visited[];
void DFS(int m)
{
if(m==n+&&isPrime(a[m-]+)) //戒指 填充完毕 , 比且最后一个数字和第一个数字之和 也是素数
{
for(int i=;i<n;i++)
printf("%d ",a[i]);
printf("%d\n",a[n]);
mark=;
}
for(int i=;i<=n;i++)
{
if(visited[i]==) // 这个数字 没有用过
{
if(isPrime(a[m-]+i)) // 如果上一个和这一个 之和是素数的话
{
a[m]=i;
visited[i]=;
DFS(m+);
visited[i]=;
}
}
}
}
int main()
{
int count1=;
while(scanf("%d",&n),n)
{
printf("Case %d:\n",++count1);
if(n%==&&n!=)
{
printf("No Answer\n");
continue;
}
mark=;
a[]=; //第一个位置上 一定 是 1
memset(visited,,sizeof(visited));
visited[]=;
DFS(); // 直接 开始填第二个坑 .
if(mark==)
printf("No Answer\n");
}
return ;
}
一直会有这样那样的错误 , 归结了一下还是不细心造成的 . . . . . . . . . . . . . 一点一点的改吧 .
Prime Ring Problem -- 第一个真正意义上的 搜索的更多相关文章
- 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(dfs)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- uva 524 prime ring problem——yhx
Prime Ring Problem A ring is composed of n (even number) circles as shown in diagram. Put natural ...
- hdu 1016 Prime Ring Problem(DFS)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- 杭电oj 1016 Prime Ring Problem
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- UVA - 524 Prime Ring Problem(dfs回溯法)
UVA - 524 Prime Ring Problem Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & % ...
- Prime Ring Problem + nyoj 素数环 + Oil Deposits + Red and Black
Prime Ring Problem Time Limit : 4000/2000ms (Java/Other) Memory Limit : 65536/32768K (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 ...
- Prime Ring Problem
Problem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ... ...
随机推荐
- fiddler培训
fiddler 在客户端和服务器中间做一个代理 ,只能截获http或HTTPS的请求 代理地址127.0.0.1 端口8888 反向代理,正向代理 浏览器上设置代理地址和端口 左边是session ...
- python学习,使用requests库来模拟登录github,post请求。
这次我们要模拟登录的页面是 https://github.com/login 首先我们先尝试着登陆一遍分析一下请求, 打开开发者工具下的network选项, 可以很清楚的看到这个会话session,而 ...
- 使用Mybatis的逆向工程自动生成代码
1.逆向工程的作用 Mybatis 官方提供了逆向工程,可以针对数据库表自动生成Mybatis执行所需要的代码(包括mapper.xml.Mapper.java.pojo). 2.逆向工程的使用方法 ...
- 写给对<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">迷惑不解的小伙伴
1.X-UA-Compatible X-UA-Compatible是自从IE8新加的一个设置,对于IE8以下的浏览器是不识别的. 通过在meta中设置X-UA-Compatible的值,可以指定网页的 ...
- IT领域的罗马帝国——微软公司
微软公司从做软件开始,起步很小.但是盖茨确是一直深耕于战略布局,像一个棋局高手,每一步棋都是看了后面几步. 盖茨居然用9年的时间憋出一个win3.0,成功击败了apple. 而这9年拖住apple的居 ...
- 27、Java并发性和多线程-CAS(比较和替换)
以下内容转自http://ifeve.com/compare-and-swap/: CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术.简单来说,比较和替换是使用一个期 ...
- SQL Server 性能优化实战系列(文章索引) : 桦仔
http://www.cnblogs.com/gaizai/archive/2012/01/20/2327814.html
- golang 的GOPATH设置的问题
go run footer.go 的时候呢, go会依次去GOPATH 和GOROOT设置的对应路径下面找对应的包(目录和文件) 找的时候呢, 会在GoPATH 和GOROOT对应的目录后面再加一层路 ...
- Material-design icon生成插件
在使用android studio开发android应用的过程.会遇到一些非常不错的插件,当中android-material-design-icon-generator-plugin 是一个Mate ...
- Solidworks如何修改单位
文档属性-单位-修改成mm