素数环: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 ...
随机推荐
- spring mvc数据验证
今天来说一下.前段验证,与后端数据验证.大家都知道.在我们.注册与登陆的时候,往往需要对数据进行效验.那么前段我们都知道,可以使用,js去做处理. 今天主要讲解.后端的数据效验.这里我们采用Hiber ...
- java 性能检测工具 检测死锁等
死锁检测方法 1 JConsole 找到需要查看的进程,打开线程选项卡,点击检测死锁 2 jps查看java进程ID,使用jstack 7412输出信息 3 使用jvisualvm连接java虚拟机 ...
- onCreate中获得控件的大小
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC ...
- VirtualBox + CentOS 虚拟机网卡配置
摘要: 要学好Linux,还是得自己搭建虚拟机. VirtualBox比较小巧简单,容易上手.在配合CentOS 6.4使用时,首要的问题就是网卡配置,尤其是使用SSH终端仿真程序(例如SecureC ...
- Linux进程间通信(五) - 信号灯(史上最全)及其经典应用案例
信号灯概述 什么是信号灯 信号灯用来实现同步,用于多线程,多进程之间同步共享资源(临界资源). PV原语:信号灯使用PV原语 P原语操作的动作是: u sem减1. u sem减1后仍大于或等于零 ...
- PHP、jQuery、AJAX和MySQL 数据库实例
index.html页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- java web Listener的简单使用案例
1.web.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi= ...
- 解决Eclipse的Team菜单中没有SVN选项的问题
我们想使用SVN向SVN服务器上传代码,但Eclipse默认情况下却没有SVN选项,如下图所示. 默认只有GIT,如下图所示. 那么,我们怎么解决这个问题呢? 第一步:如下图所示. 第二步:在&quo ...
- 解决PL/SQL Developer过期
1 2 3 4 5 6 分步阅读 PL/SQL Developer过期了,又没有注册码,又不想花钱买,而且事情又非常急,这时候怎么办?不要着急,请随小编一起解决这种情况吧. 工具/原料 PL/SQ ...
- 九度OJ 1187:最小年龄的3个职工 (排序)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2291 解决:936 题目描述: 职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来. 输入: 输入第一行包括1个 ...