95 条题解

  • 0
    @ 2009-10-28 21:12:40

    我敢肯定,数据超过了50位,为此我花了一天多啊

  • 0
    @ 2009-10-27 18:54:39

    神经衰弱中~~~

  • 0
    @ 2009-10-24 10:22:55

    原来有多组数据.....

  • 0
    @ 2009-10-23 23:31:46

    这题。。- -||||

    做递归做到栈溢出。。

    无语。。目前还没AC。。。

  • 0
    @ 2009-10-22 22:19:13

    puppy已经失踪一星期了,

    终于还是用sunny勉强过掉.

    具体方法参考楼下的牛们

    编译通过...

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

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

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

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

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

  • 0
    @ 2009-10-10 19:04:27

    sunny 过不了

    我用 puppy 过的

  • 0
    @ 2009-10-10 19:00:04

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

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

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

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

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

    我开了八位才过

  • 0
    @ 2009-10-06 09:35:29

    用read全错,用readln就AC了

  • 0
    @ 2009-10-05 23:08:50

    puppy比sunny快很多,怎么这么不均衡?

  • 0
    @ 2009-10-01 15:08:41

    惊喜地发现我AC后此题AC率上升了一个百分点

  • 0
    @ 2009-09-27 23:16:56

    为什么大家的做法都一样?

    我的方法就很不同!

    查看题解

  • 0
    @ 2009-09-27 08:02:09

    编译通过...

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

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

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

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

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

    未打表.....

    Orz puppy!我的JP电脑都没他快......

  • 0
    @ 2009-09-22 13:06:59

    可以压9位么?9位会有危险么?...

  • 0
    @ 2009-09-20 10:46:10

    预先算出结果,然后交给Puppy搞定……

  • 0
    @ 2009-09-19 19:32:19

    var

    f:array[0..1500000,0..6] of longint;

    i,j,n,t,p:longint;

    num:array[1..30] of longint;

    procedure main;

    begin

    for i:=1 to n div 2 do

    for j:=6 downto 1 do

    begin

    f:=f+f[i div 2,j]+f;

    f:=f+f div 1000000000;

    f:=f mod 1000000000;

    end;

    end;

    begin

    while not eof do

    begin

    t:=t+1;

    readln(num[t]);

    if num[t]>n then n:=num[t];

    end;

    f[0,6]:=1;

    main;

    for p:=1 to t do

    begin

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

    for i:=0 to 6 do

    if f[num[p],i]0 then break;

    write(f[num[p],i]);

    for j:=i+1 to 6 do

    begin

    if f[num[p],j] div 10=0 then write('00000000') else

    if f[num[p],j] div 100=0 then write('0000000') else

    if f[num[p],j] div 1000=0 then write('000000') else

    if f[num[p],j] div 10000=0 then write('00000') else

    if f[num[p],j] div 100000=0 then write('0000') else

    if f[num[p],j] div 1000000=0 then write('000') else

    if f[num[p],j] div 10000000=0 then write('00') else

    if f[num[p],j] div 100000000=0 then write('0');

    write(f[num[p],j]);

    end;

    writeln;

    end;

    end.

    同样的程序

    Sunny

    编译通过...

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

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

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

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

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

    Dragon

    编译通过...

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

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

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

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

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

    Puppy

    编译通过...

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

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

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

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

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

  • 0
    @ 2009-09-18 17:25:59
  • 0
    @ 2009-09-15 19:37:41

    program p1136;

    const p=1000000000;

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

    dp:array[0..1500000,0..8]of longint;

    begin

    dp[0,0]:=1;

    dp[0,1]:=1;

    for i:=1 to 1500000do

    begin

    dp[i]:=dp;

    k:=i shr 1;

    for j:=1 to dp[k,0]do

    begin

    dp:=dp+(dp[k,j]+dp)div p;

    dp:=(dp[k,j]+dp)mod p;

    end;

    while dp[i,dp+1]0 do inc(dp);

    for j:=1 to dpdo

    begin

    dp:=dp+dpdiv p;

    dp:=dpmod p;

    end;

    while dp[i,dp+1]0 do inc(dp);

    end;

    while not eof do

    begin

    readln(n);

    n:=n shr 1;

    write(dp[n,dp[n,0]]);

    for i:=dp[n,0]-1 downto 1 do

    case dp[n,i]of

    0..9:write('00000000',dp[n,i]);

    10..99:write('0000000',dp[n,i]);

    100..999:write('000000',dp[n,i]);

    1000..9999:write('00000',dp[n,i]);

    10000..99999:write('0000',dp[n,i]);

    100000..999999:write('000',dp[n,i]);

    1000000..9999999:write('00',dp[n,i]);

    10000000..99999999:write(0,dp[n,i]);

    else write(dp[n,i]);

    end;

    writeln;

    end;

    end.

    交上去之后显示AC

    点进去都是运行超时,FLAG AC

    刷新又变成0分

    ????

    BUG

  • 0
    @ 2009-09-12 19:07:01

    囧,赞楼下【qscesz123】的题解,我copy了一下下……~~

    结果一开始抄错了一个小地方,WA了一次……

    还有,第一次见识到了过程里面嵌套过程Orz

    然后我就简写了一下,大部分雷同(就是抄的)

    我这么弱该怎么办啊……

    (不知时间为什么满了好多。我在过程里面并没有另开数组,怎么会慢了呢?)

    (难道是,评测机sunny?)

    编译通过...

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

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

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

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

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

    const filename='p1136';

    w=1000000000;

    var

    a:array[1..1500000,0..7]of longint;

    i,j,n,max:longint;

    function maxn(x,y:longint):longint;{y then exit(x);exit(y);end;

    procedure jia(i1,i2,i3:longint);

    var i,s,t:longint;

    begin

    t:=0;

    for i:=1 to maxn(a[i2,0],a[i3,0])do

    begin

    s:=a[i2,i]+a[i3,i]+t;

    t:=s div w;

    a[i1,i]:=s mod w;

    end;

    if t0 then begin inc(i);a[i1,i]:=t mod w;end;

    a[i1,0]:=i;

    end;

    procedure print;

    var i:longint;

    procedure zero(t:longint);

    begin

    while t

  • 0
    @ 2009-09-03 22:01:26

    好吧....n=1时要用Continue...不能用Halt....悲剧......

    见notblack题解

    外加补充:压缩时压9位,数组[1..1500001,0..7].....

    此题好WS.....就那个Continue与Halt的问题....我交了10次左右....

  • 0
    @ 2009-09-03 21:35:18

    编译通过...

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

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

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

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

    压位,压时间,压空间,终于过了………………

    好吉利的数字

    至于方法,楼下的牛牛们已经讲得很清楚了

信息

ID
1136
难度
8
分类
递推 | 高精度 点击显示
标签
(无)
递交数
3322
已通过
500
通过率
15%
被复制
4
上传者