POJ 2034 Anti-prime Sequences
2012-10-21 22:20
357 查看
素数筛选+dfs
#include <iostream> #include <cstdio> #include <queue> using namespace std; #define maxn 10005 int flag[maxn]; bool vis[1005]; int a[1005]; int n,m,d,cur,judge; void prime() { for(int i=2;i*i<maxn;i++) { if(!flag[i]) { for(int j=i*i;j<maxn;j+=i) { flag[j]=1; } } } } int can() { int sum=a[cur-1]; int k=cur-d; if(k<0) k=0; for(int i=cur-2;i>=k;--i) { sum+=a[i]; if(flag[sum]==0) return 0; } return 1; } bool dfs() { if(cur>=2) { if(!can()) return false; } if(cur==m-n+1) { judge=1; return true; } for(int i=n;i<=m;++i) { if(!vis[i]) { vis[i]=true; a[cur]=i; cur++; if(dfs()) return true; cur--; vis[i]=false; } } return false; } int main() { prime(); while(cin>>n>>m>>d) { if(m+n+d==0) break; memset(vis,false,sizeof(vis)); memset(a,0,sizeof(a)); cur=0,judge=0; dfs(); if(judge) { for(int i=0;i<m-n;++i) { cout<<a[i]<<','; } cout<<a[m-n]<<endl; } else cout<<"No anti-prime sequence exists."<<endl; } return 0; }
相关文章推荐
- poj 2034 Anti-prime Sequences(dfs)
- POJ-2034-Anti-prime Sequences
- poj 2034 Anti-prime Sequences(dfs)
- poj 2034 Anti-prime Sequences(dfs)
- POJ 2034 Anti-prime Sequences
- [水+dfs] poj 2034 Anti-prime Sequences
- POJ 2034 Anti-prime Sequences(数论+dfs)
- poj 2034 Anti-prime Sequences(dfs)
- POJ - 2034 Anti-prime Sequences(素数判断+搜索)
- poj 2034 Anti-prime Sequences(dfs)
- poj 2034 Anti-prime Sequences
- poj 2034 Anti-prime Sequences
- POJ 2034 Anti-prime Sequences(素数预处理+DFS回溯)
- [暑假集训--数论]poj2034 Anti-prime Sequences
- POJ 2034 Anti-prime Sequences (筛素数+DFS)
- POJ 2034 Anti-prime Sequences (筛素数+DFS)
- poj 2034 Anti-prime Sequences
- 递归和回溯 POJ 2034 Anti-prime Sequences
- POJ_2034_Anti-prime Sequences(数论+DFS)
- poj 2034 Anti-prime Sequences