题解

96 条题解

  • 0
    @ 2009-06-23 19:51:19

    交表

    #include

    int main()

    {

    long a[8][100]={

    {2,3,5,7},

    {23,29,31,37,53,59,71,73,79},

    {233,239,293,311,313,317,373,379,593,599,719,733,739,797},

    {2333,2339,2393,2399,2939,3119,3137,3733,3739,3793,3797,5939,7193,7331,7333,7393},

    {23333,23339,23399,23993,29399,31193,31379,37337,37339,37397,59393,59399,71933,73331,73939},

    {233993,239933,293999,373379,373393,593933,593993,719333,739391,739393,739397,739399},

    {2339933,2399333,2939999,3733799,5939333,7393913,7393931,7393933},

    {23399339,29399999,37337999,59393339,73939133}

    };

    int n,i;

    scanf("%d",&n);

    i=0;

    while( a[n-1][i]!=0 )

    {

    printf("%ld\n",a[n-1][i]);

    i++;

    }

    return 0;

    }

  • 0
    @ 2009-05-12 11:24:36

    不交表,不回溯,用枚举也秒杀,Yeah!

    const js:array[1..4] of byte=(1,3,7,9);

    begin

    readln(n);

    z[1]:=4;

    zs[1,1]:=2;zs[1,2]:=3;zs[1,3]:=5;zs[1,4]:=7;

    for i:=2 to n do

    begin

    for j:=1 to z do

    for m:=1 to 4 do

    begin

    x:=zs*10+js[m];

    if ss(x) then begin inc(z[i]);zs:=x;end;

    end;

    end;

  • 0
    @ 2009-08-03 15:59:47

    深搜超时 无奈 选择交表

    大家不要学我

    会降RP的

    编译通过...├ 测试数据 01:答案正确... 0ms├ 测试数据 02:答案正确... 0ms├ 测试数据 03:答案正确... 0ms├ 测试数据 04:答案正确... 0ms├ 测试数据 05:答案正确... 0ms-------------------------Accepted 有效得分:100 有效耗时:0ms附程序:

    program P1359;

    var n:longint;

    begin

    read(n);

    case n of

    1:begin

    writeln(2);

    writeln(3);

    writeln(5);

    writeln(7);

    end;

    2:begin

    writeln(23);

    writeln(29);

    writeln(31);

    writeln(37);

    writeln(53);

    writeln(59);

    writeln(71);

    writeln(73);

    writeln(79);

    end;

    3:begin

    writeln(233);

    writeln(239);

    writeln(293);

    writeln(311);

    writeln(313);

    writeln(317);

    writeln(373);

    writeln(379);

    writeln(593);

    writeln(599);

    writeln(719);

    writeln(733);

    writeln(739);

    writeln(797);

    end;

    4:begin

    writeln(2333);

    writeln(2339);

    writeln(2393);

    writeln(2399);

    writeln(2939);

    writeln(3119);

    writeln(3137);

    writeln(3733);

    writeln(3739);

    writeln(3793);

    writeln(3797);

    writeln(5939);

    writeln(7193);

    writeln(7331);

    writeln(7333);

    writeln(7393);

    end;

    5:begin

    writeln(23333);

    writeln(23339);

    writeln(23399);

    writeln(23993);

    writeln(29399);

    writeln(31193);

    writeln(31379);

    writeln(37337);

    writeln(37339);

    writeln(37397);

    writeln(59393);

    writeln(59399);

    writeln(71933);

    writeln(73331);

    writeln(73939);

    end;

    6:begin

    writeln(233993);

    writeln(239933);

    writeln(293999);

    writeln(373379);

    writeln(373393);

    writeln(593933);

    writeln(593993);

    writeln(719333);

    writeln(739391);

    writeln(739393);

    writeln(739397);

    writeln(739399);

    end;

    7:begin

    writeln(2339933);

    writeln(2399333);

    writeln(2939999);

    writeln(3733799);

    writeln(5939333);

    writeln(7393913);

    writeln(7393931);

    writeln(7393933);

    end;

    8:begin

    writeln(23399339);

    writeln(29399999);

    writeln(37337999);

    writeln(59393339);

    writeln(73939133);

    end;

    end;

    end.

  • 0
    @ 2009-04-25 12:08:31

    除第一位外,其他位和1,3,5,7,9有关系么?

  • 0
    @ 2009-03-17 23:45:49

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    #include "stdio.h"

    #include "math.h"

    int n;

    int panduan(int num)

    {

    int i,p;

    if(num==2) return 1;

    if(numn) printf("%d\n",num);

    else

    for(num*=10,i=0;i

  • 0
    @ 2009-03-15 22:36:25

    第500个AC!

    搜索!

  • 0
    @ 2009-03-15 22:32:42

    水题.......

  • 0
    @ 2009-02-10 22:41:52

    这题太猥琐了……递归构造秒杀。

    可怜我第一次乖乖地模拟。。艾!为什么不打表……浪费AC率……

  • 0
    @ 2008-12-31 16:02:16

    C:

    #include

    #include

    int n;

    int isprime(int num) {

    int i,p;

    if(num2) return 0;

    for(p=(int)sqrt(num),i=3;ip;

    }

    void work(int num,int depth) {

    int i;

    if(depth>n) printf("%d\n",num);

    else for(num*=10,i=0;in then writeln(num)

    else

    begin num:=num*10;

    for i:=1 to 10 do

    begin if isprime(num) then work(num,depth+1);

    inc(num)

    end

    end

    end;

    begin

    read(n);

    work(0,1)

    end.

  • 0
    @ 2008-12-08 13:38:11

    program p1359;

    var

    n:integer;

    function p(k:longint):boolean;

    var

    i:longint;

    begin

    if k=1 then exit(false);

    for i:=2 to trunc(sqrt(k)) do

    if (k mod i=0) then exit(false);

    exit(true);

    end;

    procedure doit(a:longint;s:string);

    var

    s1,s2:string;

    k,i,code:longint;

    begin

    if a=n+1 then begin writeln(s);exit; end;

    if a=1 then

    for i:=1 to 9 do

    begin

    str(i,s1);

    s2:=s+s1;

    val(s2,k,code);

    if p(k) then doit(a+1,s2);

    end

    else

    for i:=0 to 9 do

    begin

    str(i,s1);

    s2:=s+s1;

    val(s2,k,code);

    if p(k) then doit(a+1,s2);

    end;

    end;

    begin

    readln(n);

    doit(1,'');

    end.

  • 0
    @ 2008-11-29 20:15:30

    不知是USACO那章节的

    挺水的

    真的

  • 0
    @ 2008-11-29 12:43:08

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

  • 0
    @ 2008-11-02 15:40:08

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    百题留念 !

    下午要回去学校的时候

    看了下 99道 ...

    此water problem浮现眼前...

    直接找了之前usaco的程序交 .....

  • 0
    @ 2008-10-27 09:24:34
    • -||主程序定义一大堆变量..最后就用到一个N..
  • 0
    @ 2008-10-19 21:48:57

    这题越做越想哭。开始写了个筛选的预处理,结果全超了。后来交了个表,秒杀,感觉很爽。最后改成了边搜边判素数,竟然0ms。我哭了……

  • 0
    @ 2008-10-15 07:32:28

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    不能用筛素数的方法

    可以每一位判断,然后再用判断素数的方法

    用米勒-罗宾判断也行(不过很麻烦我没用)

    刚做完的usaco就看到这道题了

    var

    n:longint;

    a:array[1..8]of longint;

    procedure su(k:longint);

    var

    i,j,m:longint;

    f:boolean;

    begin

    for i:=0 to 9 do

    if (k=1) and ((i=0) or (i=1)) then continue

    else

    begin

    a[k]:=i;

    m:=0;

    for j:=1 to k do

    m:=m*10+a[j];

    f:=true;

    for j:=2 to trunc(sqrt(m)) do

    if m mod j=0 then

    begin

    f:=false;

    break

    end;

    if not f then continue;

    if k=n then

    writeln(m)

    else

    su(k+1);

    end;

    end;

    begin

    readln(n);

    su(1);

    end.

  • 0
    @ 2008-10-11 18:39:38

    看过《算法d论》的都应该知道,

    判素数本来应该更简单的...

  • 0
    @ 2008-10-05 13:31:43

    剪枝+回溯=秒杀 and AC

    注意啊 一个数n只要除不尽2 到 Trunc(sprt(n) 之间的任一个数就是素数

    悔过啊~~悔过啊~~

    分情况考虑 最高位可以是2,3,5,7 其它位1,3,7,9 这样就递归4次即可

    庆祝AC的第35题!!!!!!

  • 0
    @ 2008-09-25 12:05:35

    有的时候,真的觉得写程序是很艺术的事情.

    function thatis(k:longint):boolean;

    var i:longint;

    begin

    for i:=1 to trunc(sqrt(k))do if k mod i=0 then exit(false);

    exit(true)

    end;

    procedure check(now,k:longint);

    begin

    if k=n+1 then writeln(now);

    if thatis(now*10+1)then check(now*10+1,k+1);

    if thatis(now*10+3)then check(now*10+3,k+1);

    if thatis(now*10+7)then check(now*10+7,k+1);

    if thatis(now*10+9)then check(now*10+9,k+1)

    end;

    主程序:

    readln(n);

    check(2,2);

    check(3,2);

    check(5,2);

    check(7,2)

  • 0
    @ 2008-09-20 17:04:51

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

信息

ID
1359
难度
3
分类
搜索 | 枚举数论 点击显示
标签
(无)
递交数
2004
已通过
953
通过率
48%
被复制
7
上传者