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

zoj 2203 Anti

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

zoj 2203 Anti

#include<stdio.h>#include<string.h>#include<math.h>static int n, m, d, find = 0, len = 0, primes[1300], map[10000], a[1000],        v[1001];void generate_primes(){    int num, i, n, is_prime;    for (num = 2; num <= 10000; num++)    {        n = (int) sqrt(num);        is_prime = 1;        for (i = 0; i < len && primes[i] <= n; i++) if (num % primes[i] == 0) {     is_prime = 0;     break; }        if (is_prime) map[primes[len++] = num] = 1;    }}void print_anti_primes(){    int i;    for (i = 0; i < m - n + 1; i++)        printf(i ? ",%d" : "%d", a[i]);    putchar('n');}int test_anti_primes(int num, int index){    if (!index)        return 1;    int i, sum = num;    for (i = index - 1; i >= 0 && i >= index + 1 - d; i--)        if (map[sum += a[i]]) return 0;    return 1;}void dfs2203(int depth){    if (depth == m - n + 1)    {        find = 1;        print_anti_primes();    }    if (find)        return;    int i;    for (i = n; i <= m; i++)        if (!v[i] && test_anti_primes(i, depth))        { v[i] = 1; a[depth] = i; dfs2203(depth + 1); v[i] = 0;        }}int main(){    memset(map, 0, 10000 * sizeof(int));    generate_primes();    while (scanf("%d %d %d", &n, &m, &d), n && m && d)    {        memset(v, 0, 1001 * sizeof(int));        find = 0;        dfs2203(0);        if (!find) puts("No anti-prime sequence exists.");    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379112.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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