poj 2034 Anti-prime Sequences
2011-07-22 22:48
375 查看
#include<iostream> using namespace std; bool isPrime[10002]; int prime[1000],total; //线性筛法寻找素数 void makePrime() { total=0; memset(isPrime,true,sizeof(isPrime)); for(int i=2;i<=maxn;i++) { if(isPrime[i]) prime[++total]=i; for(int j=1;j<=total&& i*prime[j]<=maxn; j++) { isPrime[i*prime[j]]=false; if(i%prime[j]==0) break; } } } int arr[2000],tag[2000],res[2000]; int n,m,d,end; void dfs(int id) //直接搜索 { for(int i=n;i<=m;++i) { if(tag[i]) continue; bool flag=1; int j=id-1,s=i; while(j>0&&id-j+1<=d) { s+=res[j]; if(isPrime[s]) { flag=0;break; } j--; } if(flag) { res[id]=i; tag[i]=1; if(id==m-n+1) { end=1; return; } dfs(id+1); if(end==1) return; tag[i]=0; } } } int main() { makePrime(); while(scanf("%d%d%d",&n,&m,&d)&&n) { end=0; memset(tag,0,sizeof(tag)); dfs(1); if(end) { for(int i=1;i<m-n+1;++i) printf("%d,",res[i]); printf("%d\n",res[m-n+1]); } else printf("No anti-prime sequence exists.\n"); } return 0; }
相关文章推荐
- poj 2034 Anti-prime Sequences(dfs)
- [水+dfs] poj 2034 Anti-prime Sequences
- 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
- 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
- POJ 2034 Anti-prime Sequences
- poj 2034 Anti-prime Sequences
- POJ-2034-Anti-prime Sequences