素数环:NYOJ--488--dfs||hdu-1016-Prime Ring Problem
/*
Name: NYOJ--488--素数环
Author: shen_渊
Date: 15/04/17 15:30
Description: DFS,素数打个表,37以内就够用了
*/ #include<cstring>
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
void dfs(int);
int n;
//int prime[25] = {2,3,5,7,11,13,17,19,23,29,31,37};学到下面一招
bool prime[]={,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,};
int arr[];
int vis[];
int main()
{
// freopen("in.txt","r",stdin);
int m = ;
while(cin>>n,n){
memset(arr,,sizeof(arr));
memset(vis,,sizeof(vis));
arr[] = ;
cout<<"Case "<<++m<<":\n";
if(n == )cout<<"1\n";
else if(n%){
cout<<"No Answer\n";
}else{
dfs();
}
}
return ;
}
void dfs(int ct){
if(ct == n+ && prime[arr[n]+arr[]]){
for(int i=; i<=n; ++i)
cout<<arr[i]<<" ";
cout<<endl;
}else{
for(int i=; i<=n; ++i){
if(!vis[i] && prime[arr[ct-]+i]){
arr[ct] = i;
vis[i] = ;
dfs(ct+);
vis[i] = ;
}
}
}
}
因为用ios::sync_with_stdio(false);取消了C的stream和C++的stream的同步,所以输出出现了不符合预期的结果,以后还是少用cin,cout,scanf,printf,C和C++混合输出的方式
/*
Name:hdu-1016-Prime Ring Problem
Copyright:
Author:
Date: 2018/5/19 16:59:52
Description:水题
*/
#include <cstring>
#include <iostream>
#include <cstdio>
using namespace std;
int n, arr[], vis[];
int prime[]={,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,};//素数打表,因为n最大是20,所以只要打到40
bool jundge(int n) {
for (int i=; i*i<=n; i++) {
if (n%i == ) return ;
}
return ;
}
void dfs(int ct) {
if (ct == n) {
if (prime[arr[ct] + ]) {
cout<<arr[];
for (int i=; i<=n; i++) {
cout<<" "<<arr[i];
}
cout<<endl;
}
} else {
for (int i=; i<=n; i++) {
if (vis[i] == && prime[i+arr[ct]]) {
arr[ct+] = i;
vis[i] = ;
dfs(ct+);
vis[i] = ;
}
}
}
}
int main()
{
// ios::sync_with_stdio(false);
// 加上这一句,用printf输出WA,cout输出AC,测试后发现,用文件读取输入输出的时候,
// printf并不能输出 Case 1:这一行的输出
int k = ;
while (cin>>n) {
// printf("Case %d:\n", ++k);
cout<<"Case "<<++k<<":\n";
if (n == ) {
cout<<"1\n\n";
continue;
}
if (n & ) {
cout<<endl;
continue;
}
memset(arr, , sizeof(arr));
memset(vis, , sizeof(vis));
arr[] = ;
dfs();
cout<<endl;
}
return ;
}
素数环:NYOJ--488--dfs||hdu-1016-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(回溯)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Jav ...
- 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 经典素数环
Prime Ring Problem A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., ...
- 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 (DFS)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- 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(dfs)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- 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 ...
随机推荐
- JS中关于闭包和this的指向
闭包个人理解 函数内部还有一个函数,其作用就是可以访问上一层函数中的变量 下面的案例中函数内部有函数,this的指向就变为window了 结果闭包中this指向的两种方法 1.call对象冒充可以 ...
- Smart pointer 智能指针小总结
Smart pointer line 58之后smart pointer里的计数已经是0,所以会真正释放它引用的对象,调用被引用对象的析构函数.如果继续用指针访问,会出现如下图的内存访问异常.所以说如 ...
- [LeetCode] Remove Duplicates from Sorted Array II [27]
题目 Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? For ex ...
- 实战c++中的vector系列--creating vector of local structure、vector of structs initialization
之前一直没有使用过vector<struct>,如今就写一个简短的代码: #include <vector> #include <iostream> int mai ...
- Unity中surfaceShader的处理机制和finalColor
http://blog.csdn.net/swj524152416/article/details/52945375
- 九度OJ 1334:占座位 (模拟)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:864 解决:202 题目描述: sun所在学校的教室座位每天都是可以预占的. 一个人可以去占多个座位,而且一定是要连续的座位,如果占不到他所 ...
- WiX 中XML引用变量说明
WiX 安装工程中的XML 文件所引用变量说明: The WiX project supports the following project reference variables: Variabl ...
- Redis通过PUBLISH / SUBSCRIBE 等命令实现了订阅与发布模式
# 切换目录 [root@localhost /]# cd /opt/redis-4.0.10 # 启动客户端 -p 指定端口 [root@localhost ~]# redis-cli -p 638 ...
- PHP的依赖管理工具----composer
安装Composer 参考:https://getcomposer.org/doc/01-basic-usage.md composer 是PHP依赖管理工具 PHP最低版本要求5.3.2,需要允许o ...
- R语言图形base系统(三)
本篇介绍R语言base系统绘制散点图.条形图.直方图.箱线图.饼图,还将简单介绍点图.核密度图.折线图. 散点图: attach(mtcars) plot(wt, mpg, main="B ...