33 条题解

  • 0
    @ 2009-01-18 13:00:12

    PROGRAM yanghui(input,output);

    VAR

    c,e,n,shuangshu:integer;

    z:boolean;

    h:array[1..100,1..100]of integer;

    begin

    readln(n);

    shuangshu:=0;

    fillchar(h,sizeof(h),1);

    for c:=2 to n do

    begin

    for e:=2 to c do

    begin

    h[e,c]:=h[e-1,c-1]+h[e,c-1];

    z:=odd(h[e,c]);

    if z=false

    then shuangshu:=shuangshu+1;

    end;

    end;

    writeln(shuangshu);

    end.

  • 0
    @ 2009-01-08 20:29:00

    果然easy......

  • 0
    @ 2009-01-05 12:45:41

    haodi

  • 0
    @ 2009-01-04 17:45:09

    CURIMIT 你不早说这个题解 害我把高精度加减乘除和快速幂 全部都用上了

    狂晕啊

  • 0
    @ 2009-01-04 17:42:14

    一定要用ANSISTRING 否则最后3点都过不去

  • 0
    @ 2009-01-02 10:30:07

    猥琐题

  • 0
    @ 2008-12-28 19:25:46

    哪位大牛说一下规律

  • 0
    @ 2008-12-27 16:59:22

    递归就可以,但是想了想给出了优化,不用递归直接运算就好了.

    提示:二进制.

    ps:好久没写高精度了..这题调了好久,不过还好直接过了.

  • 0
    @ 2009-07-17 08:23:38

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    高精度秒杀!

    这是一道汇集了高精度整个家族于一体的题目...

  • 0
    @ 2009-01-02 19:09:13

    Curimit 大牛太谦虚了~~~

    这道题要是没有题解的话 难度应该可以达到5滴

  • 0
    @ 2008-12-27 14:04:11

    zlq抢了

  • 0
    @ 2008-12-27 13:35:53

    有规律的说。。。

  • -1
    @ 2009-07-24 10:27:53

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    program P1494;

    type array1=array[1..100] of longint;

    array2=array[1..170] of longint;

    var a,c,d,e,f:array1;

    b:array2;

    i,j,k,l,n,t:longint;

    s:string;

    procedure ga(var p,q:array1);

    var i:longint;

    begin

    k:=100;

    while (q[k]=0) and (k>1) do dec(k);

    for i:=1 to k do inc(p[i],q[i]);

    k:=100;

    while (p[k]=0) and (k>1) do dec(k);

    for i:=1 to k do

    if p[i]>9 then

    begin

    p:=p+p[i] div 10;

    p[i]:=p[i] mod 10;

    end;

    end;

    procedure gs(var p,q:array1);

    begin

    k:=100;

    while (q[k]=0) and (k>1) do dec(k);

    for i:=1 to k do dec(p[i],q[i]);

    k:=100;

    while (p[k]=0) and (k>1) do dec(k);

    for i:=1 to k do

    if p[i]1) do dec(l1);

    l2:=100;

    while (q[l2]=0) and (l2>1) do dec(l2);

    for i:=1 to l1 do

    for j:=1 to l2 do

    gc:=gc+p[i]*q[j];

    for i:=1 to l1+l2 do

    if gc[i]>9 then

    begin

    gc:=gc+gc[i] div 10;

    gc[i]:=gc[i] mod 10;

    end;

    end;

    function gk(p:array1;q,r:longint):array1;

    var i,u,w:longint;

    begin

    w:=q;

    for i:=2 to 10 do w:=w*q;

    u:=r div 10;

    for j:=1 to u do

    begin

    k:=100;

    while (p[k]=0) and (k>1) do dec(k);

    for i:=1 to k do p[i]:=p[i]*w;

    k:=k+5;

    for i:=1 to k do

    if p[i]>9 then

    begin

    p:=p+p[i] div 10;

    p[i]:=p[i] mod 10;

    end;

    end;

    u:=r mod 10;

    for j:=1 to u do

    begin

    k:=100;

    while (p[k]=0) and (k>1) do dec(k);

    for i:=1 to k do p[i]:=p[i]*q;

    k:=k+1;

    for i:=1 to k do

    if p[i]>9 then

    begin

    p:=p+p[i] div 10;

    p[i]:=p[i] mod 10;

    end;

    end;

    exit(p);

    end;

    function com(p:array1):boolean;

    begin

    k:=100;

    while (p[k]=0) and (k>1) do dec(k);

    if p[k]0 then exit(true) else exit(false);

    end;

    procedure DtoB(p:array1);

    var step:longint;

    begin

    step:=0;

    while com(p) do

    begin

    inc(step);

    k:=100;

    while (p[k]=0) and (k>1) do dec(k);

    for i:=k downto 2 do

    begin

    p:=p+p[i] mod 2*10;

    p[i]:=p[i] div 2;

    end;

    b[step]:=p[1] mod 2;

    p[1]:=p[1] div 2;

    end;

    end;

    begin

    fillchar(a,sizeof(a),0);

    fillchar(b,sizeof(b),0);

    fillchar(c,sizeof(c),0);

    fillchar(d,sizeof(d),0);

    t:=0;

    d[1]:=1;

    readln(s);

    l:=length(s);

    for i:=1 to l do

    begin

    val(s[l-i+1],a[i]);

    f[i]:=a[i];

    end;

    inc(a[1]);

    DtoB(a);

    n:=170;

    while (b[n]=0) and (n>1) do dec(n);

    for i:=n downto 1 do

    if b[i]=1 then

    begin

    inc(t);

    e:=gc(gk(d,2,t-1),gk(d,3,i-1));

    ga(c,e);

    end;

    inc(f[1],2);

    a:=gc(a,f);

    k:=100;

    while (a[k]=0) and (k>1) do dec(k);

    for i:=k downto 2 do

    begin

    a:=a+a[i] mod 2*10;

    a[i]:=a[i] div 2;

    end;

    a[1]:=a[1] div 2;

    gs(a,c);

    k:=100;

    while (a[k]=0) and (k>1) do dec(k);

    for i:=k downto 2 do write(a[i]);

    writeln(a[1]);

    end.

    "k:=100"错输成"k:=50",郁闷了我大半年

    (1~16秒杀,17~20错误答案)

    P.S.用string照秒不误,焉用ansistring

信息

ID
1494
难度
7
分类
数论 | 高精度 点击显示
标签
递交数
443
已通过
69
通过率
16%
被复制
3
上传者