素数环: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 ...
随机推荐
- 常见UI组件的一个模板
效果: 代码: using UnityEngine; using UnityEditor; using System.Collections; using System.IO; using Unity ...
- 谷歌高管无意中透露Google Glass未获得成功的原因
Google X高管Astro Teller在接受媒体采访时无意中透露了这款设备没有取得预期成绩的原因 最终我们发现,在他们生活的世界里,数字生活和即时物理生活根本无法融为一体. Teller提出的这 ...
- USB设备驱动程序(二)
首先我们来看USB设备描述符的结构: 在USB总线识别设备阶段就将USB描述符发送给了USB总线驱动程序,设备的数据传输对象是端点,端点0是特殊端点,在USB总线驱动程序识别阶段, 会分配一个地址给U ...
- Python小白的发展之路之Python基础(三)【函数简介】
目录: 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 4.嵌套函数 5.递归 6.匿名函数 7.函数式编程介绍 8.高阶函数 9.内置函数 1. 函数基本语法及特性 首先我们明确函数是 ...
- MATLAB循环结构:for语句+定积分实例
for语句 格式: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 表达式1:循环变量初值:表达式2:步长:表达式3:循环变量终值. for 循环变量=矩阵表达式 循环体语句 en ...
- nginx日志自动切分
#!/bin/bash NGINX_LOG_PATH=/data/nginx-/logs # 昨天 YESTERDAY=$(date -d "yesterday" +%Y-%m-% ...
- Iptalbes练习题(二)
接着上节,上节课,基本功能设置后,现在我们telnet本机一下,发现问题: [root@test1 ~]# telnet Trying 127.0.0.1... telnet: connect to ...
- 纪念下自学QT 第十天 终于写成了串口调试助手
- MainWindows
开发带有菜单栏状态栏等常用windows应用时候使用
- 改善程序与设计的55个具体做法 day9
条款23:宁以non-member.non-friend替换member函数 即 以非成员函数 非友元函数 替换成员函数. 直观上,面向对象应该尽可能的封装,封装数据.封装操作等等,所以这个条款可能有 ...