Anti-prime sequence (P2034)
来源:互联网 发布:慢跑减肥 知乎 编辑:程序博客网 时间:2024/06/06 00:46
题意: 给定一串连续的整数从n到 n+m,
让我们给其数排序,满足以下要求:在这m+1个数中的任意的连续的2~d个数
之和不为素数(其中不考虑循环的情况)
思路:直接DFS判断即可,
感想:感觉好久没有做过题一样的,一开始还对题意把握得不准。好久才做出来,幸好一次过。
#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;bool p[10000];int ans[1001];int n,m,d;int num;bool b[1001];bool isok;void dfs(int j){//cout<<j<<endl;int i,k;if (j>num){isok=true;for (i=1;i<num;++i)printf("%d,",ans[i]);printf("%d\n",ans[num]);return;}if (j==1){for (i=n;i<=m;++i) if (!b[i]){b[i]=true;ans[j]=i;dfs(j+1);b[i]=false;if (isok)return;}return;}int sum=0;if (j<d){for (i=n;i<=m;++i) if (!b[i]){sum=i;for (k=j-1;k;--k){sum+=ans[k];if (!p[sum])break;}if (k)continue;b[i]=true;ans[j]=i;dfs(j+1);b[i]=false;if (isok)return;}return;}for (i=n;i<=m;++i) if (!b[i]){sum=i;for (k=j-1;k>j-d;--k){sum+=ans[k];if (!p[sum])break;}if (k>j-d)continue;b[i]=true;ans[j]=i;dfs(j+1);b[i]=false;if (isok)return;}}int main( ){ int i,j,k;memset(p,false,sizeof(p));for (i=2;i<10000;i++) if (!p[i])for (j=i*i;j<10000;j+=i)p[j]=true;memset(b,false,sizeof(b));while (cin>>n>>m>>d,n||m||d){ num=m-n+1;isok=false;dfs(1);if (!isok)puts("No anti-prime sequence exists.");} return 0;}
Anti-prime Sequences
Time Limit: 3000MS Memory Limit: 30000KTotal Submissions: 2714 Accepted: 1257
Description
Given a sequence of consecutive integers n,n+1,n+2,...,m, an anti-prime sequence is a rearrangement of these integers so that each adjacent pair of integers sums to a composite (non-prime) number. For example, if n = 1 and m = 10, one such anti-prime sequence is 1,3,5,4,2,6,9,7,8,10. This is also the lexicographically first such sequence.
We can extend the definition by defining a degree danti-prime sequence as one where all consecutive subsequences of length 2,3,...,d sum to a composite number. The sequence above is a degree 2 anti-prime sequence, but not a degree 3, since the subsequence 5, 4, 2 sums to 11. The lexicographically .rst degree 3 anti-prime sequence for these numbers is 1,3,5,4,6,2,10,8,7,9.
We can extend the definition by defining a degree danti-prime sequence as one where all consecutive subsequences of length 2,3,...,d sum to a composite number. The sequence above is a degree 2 anti-prime sequence, but not a degree 3, since the subsequence 5, 4, 2 sums to 11. The lexicographically .rst degree 3 anti-prime sequence for these numbers is 1,3,5,4,6,2,10,8,7,9.
Input
Input will consist of multiple input sets. Each set will consist of three integers, n, m, and d on a single line. The values of n, m and d will satisfy 1 <= n < m <= 1000, and 2 <= d <= 10. The line 0 0 0 will indicate end of input and should not be processed.
Output
For each input set, output a single line consisting of a comma-separated list of integers forming a degree danti-prime sequence (do not insert any spaces and do not split the output over multiple lines). In the case where more than one anti-prime sequence exists, print the lexicographically first one (i.e., output the one with the lowest first value; in case of a tie, the lowest second value, etc.). In the case where no anti-prime sequence exists, output
No anti-prime sequence exists.
No anti-prime sequence exists.
Sample Input
1 10 21 10 31 10 540 60 70 0 0
Sample Output
1,3,5,4,2,6,9,7,8,101,3,5,4,6,2,10,8,7,9No anti-prime sequence exists.40,41,43,42,44,46,45,47,48,50,55,53,52,60,56,49,51,59,58,57,54
Source
East Central North America 2004
- Anti-prime sequence (P2034)
- sicily 1002(anti-prime sequence)
- sicily 1002 Anti-prime Sequence
- 1002: Anti-prime Sequences
- 1002. Anti-prime Sequences
- 1002. Anti-prime Sequences
- 1002. Anti-prime Sequences
- 1002. Anti-prime Sequences
- soj1002 Anti-prime Sequences
- 1002. Anti-prime Sequences
- 1002.Anti-prime Sequences
- 1002.Anti-prime Sequences
- pku 2034 Anti-prime Sequences
- POJ 2034 Anti-prime Sequences
- poj 2034 Anti-prime Sequences
- POJ 2034 Anti-prime Sequences
- sicily 1002Anti-prime Sequences
- POJ-2034-Anti-prime Sequences
- php之路 3——php变量的作用域以及php函数类型
- 反思(2013.10.21)
- 关于Android AlertDialog.builder的用法
- 如何遍列 C# 枚举数的名称与值
- Evaluation:正确率P、召回率R、F值、P@4和平均正确率AP,MAP值等
- Anti-prime sequence (P2034)
- 多媒体方向会议
- UVA 10564Paths through the Hourglass(dp)
- win7锁屏背景壁纸修改
- poj1422 Air Raid 最小路径覆盖=顶点数-最大匹配数
- shell 字符串操作小结
- 杭电acm2019数列有序
- 27-Dialog练习题,点击弹出一个对话框,选项是一个列表
- spring+jta实现全局事物管理