题解

237 条题解

  • 0
    @ 2013-09-08 17:05:52

    #include <stdio.h>
    unsigned f[1001];

    int main(void)
    {
    int n;
    int i, j;
    scanf("%d", &n);
    for(i = 1; i <= n; i++){
    f[i] = 1;
    for(j = 1; j <= i / 2; j++){
    f[i] += f[j];
    }
    }
    printf("%u\n", f[n]);
    return 0;
    }

  • 0
    @ 2013-08-27 12:24:50

    题意的确不怎么清楚
    在数的左边加数后,不把两个数合并,而是把加的那个数当成新的

    附上递推代码
    var f:array[1..1000] of longint;
    n,i,j:longint;
    begin
    readln(n);
    for i:=1 to n do f[i]:=1;
    for i:=2 to n do
    for j:=1 to i div 2 do
    f[i]:=f[i]+f[j];
    writeln(f[n]);
    end.

  • 0
    @ 2013-08-06 14:37:09

    program P1130;
    var
    n:integer;
    sum:longint;

    procedure reduce(n:integer);
    var
    i:integer;
    begin
    sum:=sum+n div 2;
    for i:=2to n div 2do
    reduce(i);
    end;

    begin
    readln(n);
    sum:=1;
    reduce(n);
    writeln(sum);
    end.

    弱弱的AC

  • 0
    @ 2013-07-11 10:35:05
  • 0
    @ 2013-03-28 11:45:44

    {f[1]=1;
    f[2]=2;
    f[3]=2;
    f[4]=f[5]=f[3]+f[2]+1;
    f[6]=f[7]=f[3]+f[2]+1+f[4];
    可得
    f[2*i]=f[2*i+1]=f[2*i-1]+f[i]}

    var
    f:array[0..100000]of double;
    i,m,n:longint;
    begin
    readln(n);
    f[1]:=1;
    f[2]:=2;
    f[3]:=2;
    for i:=2 to n div 1 do
    begin
    f[2*i+1]:=f[2*i-1]+f[i];
    f[2*i]:=f[2*i+1];
    end;
    write(f[n]:0:0);
    end.

  • 0
    @ 2012-11-03 14:58:54

    看了半天没看懂...

    还好有测试数据在网上,打表过!

    program P1130;

    var

    n:integer;

    begin

    read(n);

    case n of

    1:write(1);

    10:write(14);

    50:write(786);

    100:write(9828);

    198:write(195830);

    end;

    end.

    话说回来,这程序还超时了一次...

  • 0
    @ 2012-10-20 15:16:11

    编译通过...

    ├ 测试数据 01:答案正确... (0ms, 580KB)

    ├ 测试数据 02:答案正确... (0ms, 580KB)

    ├ 测试数据 03:答案正确... (0ms, 580KB)

    ├ 测试数据 04:答案正确... (0ms, 580KB)

    ├ 测试数据 05:答案正确... (0ms, 580KB)

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

    Accepted / 100 / 0ms / 580KB

    递归过程秒过

    {

    ID:darkgod-z

    PROG:vijos P1130

    HANG:PASCAL

    }

    var

    n:integer;

    ans:longint;

    procedure work(x:integer);

    var

    i:integer;

    begin

    if x div 2=0 then exit;

    for i:=1 to x div 2 do begin

    inc(ans);

    work(i);

    end;

    end;

    begin

    readln(n);

    ans:=0;

    work(n);

    writeln(ans+1);

    end.

  • 0
    @ 2012-08-24 08:26:49

    算法:递归 + 记忆化

  • 0
    @ 2010-07-22 10:51:45

    数据弱非常弱,如果是1000的话,递归就过不了了。我用了记忆化,1000的数据也可以过

    var

    f:array[0..1000] of longint;

    n:longint;

    tot:longint;

    function dfs(x:longint):longint;

    var

    k:longint;

    begin

    if f[x]0 then exit(f[x]);

    f[x]:=1;

    for k:=1 to x div 2 do

    f[x]:=dfs(k)+f[x];

    exit(f[x]);

    end;

    begin

    readln(n);

    f[1]:=1;

    tot:=dfs(n);

    writeln(tot);

    end.

  • 0
    @ 2010-07-17 15:20:12

    谁帮帮我啊55555

    var n,i,j,k:LONGINT;

    procedure cc(s:LONGINT);

    begin

    inc(i);

    if s>1 then for j:=1 to s div 2 do cc(j);

    end;

    begin

    readln(n);

    cc(n);

    writeln(i);

    end.

    除了第一个其他都是超时的,为什么啊?

  • 0
    @ 2010-04-15 17:10:37

    var n,i,b:longint;

    procedure shu(n:longint);

    var i:longint;

    inc:(b);

    for i:=1 to n div 2 do shu(i)

    end;

    procedure r;

    begin

    read(n);

    shu(n);

    write(b);

    end.

  • 0
    @ 2009-11-10 17:17:46

    program shujs;

    var n,i,s:longint;

    procedure pc(n:longint);

    var i:longint;

    begin

    inc(s);

    for i:=1 to n div 2 do pc(i);

    end;

    begin

    read(n);

    pc(n);

    writeln(s);

    end.

    ......很短。。。数据好弱。。

  • 0
    @ 2009-11-08 20:59:27

    编译通过...

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

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

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

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

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

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

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

    数据太弱,递归也能过

  • 0
    @ 2009-11-08 15:38:14

    为甚麽这个可以AC, 但我自己的却不能呢?哪位大牛给我解释一下。谢谢。

    program P11301;

    var

    n,i,j,k :longint;

    f :array[1..1000]of longint;

    begin

    assign(input,'P1130.in'); reset(input);

    assign(output,'P1130.out'); rewrite(output);

    readln(n);

    //fillchar(f,sizeof(f),0);

    f[1]:=1;

    for i:=2 to n do

    begin

    f[i]:=1;

    for j:=1 to i div 2 do

    f[i]:=f[j]+f[i];

    end;

    writeln(f[n]);

    close(input);

    close(output);

    end.

    我的程序,

    program P1130;

    var

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

    k :int64;

    a :array[1..1000,1..11]of longint;

    begin

    assign(input,'P1130.in'); reset(input);

    assign(output,'P1130.out'); rewrite(output);

    readln(n);

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

    a[1,n]:=1; k:=1;

    for i:=1 to 11 do

    for j:=1 to n shr (i-1) do

    if a0 then

    for l:=1 to j div 2 do

    begin

    a:=a+a;

    k:=k+a;

    end;

    writeln(k);

    close(input);

    close(output);

    end.

    至40分, 其余输出比标准长

  • 0
    @ 2009-11-07 20:44:40

    program sdjs;

    var

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

    n,i,j,s:longint;

    begin

    readln(n);

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

    a[1]:=1;

    for i:=2 to n do

    begin

    s:=0;

    a[i]:=1;

    for j:=1 to i div 2 do

    inc(s,a[j]);

    inc(a[i],s);

    end;

    writeln(a[n]);

    end.

  • 0
    @ 2009-11-05 13:47:14

    using namespace std;

    int i=0;

    void process(int n)

    {

    for(int q=1;q>num;

    process(num);

    cout

  • 0
    @ 2009-11-04 22:53:47

    数据好弱啊

    搞个1000估计通过率就没这么多了吧

  • 0
    @ 2009-11-04 19:11:29

    var

    a:cardinal;

    i:cardinal;

    max:cardinal;

    procedure shu(x:cardinal);

    var k,j:cardinal;

    begin

    inc(max);

    j:=x div 2;

    if x>1 then

    for k:=1 to j do

    shu(k);

    end;

    begin

    readln(a);

    max:=0;

    for i:=1 to (a div 2) do shu(i);

    write(max+1);

    end.

    为什么我用longint 第一组超时 有integer 最后一组 错误

    而用这个cardinal 过了

  • 0
    @ 2009-11-01 11:27:49

    1000的递归都能过?太水了~~

    编译通过...

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

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

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

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

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

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

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

  • 0
    @ 2009-11-01 11:17:34

    编译通过...

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

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

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

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

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

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

    #include

    using namespace std;

    int s=0;

    void dfs(int x)

    {

    s++;

    int i;

    for (i=1;i>n;

    dfs(n);

    cout

信息

ID
1130
难度
2
分类
递推 点击显示
标签
递交数
7079
已通过
4174
通过率
59%
被复制
30
上传者