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, ... ...
随机推荐
- 来说一说chrome扩展和chrome插件到底有什么区别?
想讨论chrome扩展和chrome插件区别这个话题很久了!但是迟迟没有写.因为我自己也没有搞清楚这两者之间的区别!回想当初是因为需要寻找番羽墙插件才想到去搜索到chrome插件. 想讨论chrome ...
- java 十三周总结
- PAT 1121 Damn Single
"Damn Single (单身狗)" is the Chinese nickname for someone who is being single. You are suppo ...
- MySQL 乐观锁和悲观锁
前言 1)在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和一致性以及数据库的一致性. 2)加锁是为了解决更新丢失问题 ...
- String replaceAll 正则注意事项及特殊用法(xjl456852原创)
我们知道String replaceAll(参数a, 参数b) 参数a是需要些正则表达式的. 但是今天试了试,发现参数b也有一些其它特性. 查看源码后,发现有些特性是平时不怎么用的.下面我来介绍一下这 ...
- 【Codeforces 372A】Counting Kangaroos is Fun
[链接] 我是链接,点我呀:) [题意] 如果a[i]*2<=a[j]那么i袋鼠可以装进j袋鼠里面 每只袋鼠都只能装一只袋鼠 [题解] 假设最后的方案是(ai,bi) 这里(ai,bi)表示下标 ...
- HDU 4902 (牛叉的线段树)
Nice boat Problem Description There is an old country and the king fell in love with a devil. The de ...
- noip模拟赛 铺瓷砖
[问题描述]有一面很长很长的墙. 你需要在这面墙上贴上两行瓷砖. 你的手头有两种不同尺寸的瓷砖, 你希望用这两种瓷砖各贴一行.瓷砖的长可以用分数表示,贴在第一行的每块瓷砖长度为A/B贴在第二行的每块瓷 ...
- sharepoint 2013安装--没安装成功--机器配置太低了
油管上的sharepoint2013安装教程 https://www.youtube.com/watch?v=3lQVMGWJQho 下载脚本的网址 http://gallery.technet.mi ...
- 武大OJ 622. Symmetrical
Description Cyy likes something symmetrical, and Han Move likes something circular. Han Mov ...