poj 2034 Anti-prime Sequences
来源:互联网 发布:网络任务源码 编辑:程序博客网 时间:2024/06/01 08:15
此题题意是给出m,n,k;
意思是在m~n的区间里任意连续的k个数必须为合数(注意:任意连续个大于2小于k的数都要满足为合数)
解题方法:dfs暴搜;
直接上代码:
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int k,a[1010],b[1010];bool p[505110];int pd(int a,int c){ if(a<2)return 1; int sum=c; for(int i=a-1;i>=1&&i>a-k;i--){//从后往前判断; sum+=b[i]; if(!p[sum])return 0; } return 1;}bool flag;void dfs(int x,int y,int t){ if(flag==1)return; if(t>y-x+1){ for(int kk=1;kk<t-1;kk++)printf("%d,",b[kk]); printf("%d\n",b[t-1]); flag=1; return; } for(int i=x;i<=y;i++){ if(!a[i]&&pd(t,i)){ b[t]=i; a[i]=1; dfs(x,y,t+1); a[i]=0; } if(flag==1)return;//记得要及时return; }}int main(){ int i,j,m,n,j1; j1=750; p[1]=1; for(i=2;i<=j1;i++)//筛出素数 if(!p[i]) for(j=i*i;j<=505100;j+=i){ p[j]=1; } while(1){ flag=0; memset(a,0,sizeof(a)); scanf("%d%d%d",&m,&n,&k); if(m==0&&n==0&&k==0)break; dfs(m,n,1); if(flag==0)printf("No anti-prime sequence exists.\n"); } return 0;}
其他好像也没什么好说的了~~
0 0
- POJ 2034 Anti-prime Sequences
- poj 2034 Anti-prime Sequences
- POJ 2034 Anti-prime Sequences
- POJ-2034-Anti-prime Sequences
- POJ 2034 Anti-prime Sequences
- poj 2034 Anti-prime Sequences
- POJ-2034 Anti-prime Sequences
- poj 2034 Anti-prime Sequences
- SOJ - 1002 POJ - 2034 Anti-prime Sequences
- poj 2034 Anti-prime Sequences(dfs)
- poj 2034 Anti-prime Sequences(dfs)
- poj 2034 Anti-prime Sequences(dfs)
- [水+dfs] poj 2034 Anti-prime Sequences
- <DFS> POJ 2034 Anti-prime Sequences
- POJ 2034 Anti-prime Sequences DFS+质数
- pku 2034 Anti-prime Sequences
- 递归和回溯 POJ 2034 Anti-prime Sequences
- POJ 2034 Anti-prime Sequences(素数预处理+DFS回溯)
- python3 基于socket的irc机器人
- ArrayAdapter、SimpleAdapter和BaseAdapter
- GFP_ATOMIC or GFP_KERNEL 区别
- JS程序的先后执行顺序
- C语言知识总结
- poj 2034 Anti-prime Sequences
- 《Java多线程编程核心技术》(三)线程通信
- linux添加tomcat到服务中
- XUtils之DButils用法简介,非常容易使用
- plsql编程
- HDU 5900 QSC and Master(区间DP)
- Java语言本身很简单,很容易学和使用
- RFID技术在槟榔谷中的应用
- Python(五)set 集合