栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2034 Anti

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2034 Anti

#include <cstdlib>#include <cstring>#include <cstdio>#define MAXN 10000using namespace std;int N, M, d, p[600005];int hash[10005], path[10005];void pre(){    int k;    for (int i = 4; i <= MAXN; i += 2) {        p[i] = 1;    }        for (int i = 3; i <= 105; i += 2) {        if (!p[i]) { k = 2 * i;      for (int j = i * i; j <= MAXN; j += k) {     p[j] = 1; }        }    }}bool dfs(int x, int step){    path[step] = x;    if (step >= 2) {         int sum = path[step], k = step > d ? d : step;        for (int i = step-1; i > step-k; --i) { sum += path[i]; if (!p[sum]) {     return false; }        }        if (step == M-N+1) { for (int i = 1; i <= M-N+1; ++i) {     printf(i == 1 ? "%d" : ",%d", path[i]); } puts(""); return true;        }    }    for (int i = N; i <= M; ++i) {        if (!hash[i]) { hash[i] = 1; if (dfs(i, step + 1)) {     return true; } hash[i] = 0;        }    }    return false;}int main(){    int flag;    pre();     while (scanf("%d %d %d", &N, &M, &d), N|M|d) {        if (N > M) { int t = N;  N = M; M = t;        }        flag = 0;        memset(hash, 0, sizeof (hash));        for (int i = N; i <= M; ++i) { hash[i] = 1; if (dfs(i, 1)) {     flag = 1;     break; } hash[i] = 0;        }        if (!flag) { puts("No anti-prime sequence exists.");        }    }    return 0;    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372969.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号