207 条题解

  • 0
    @ 2009-11-04 22:27:49

    数学题

  • 0
    @ 2009-11-04 10:23:16

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

  • 0
    @ 2009-11-03 08:45:53

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

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

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

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

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

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

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

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

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

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

    catalan...

  • 0
    @ 2009-11-02 16:51:02

    #include

    int number;

    int account=0;

    int pop(int point,int n)

    {

    point--;

    if( point==0)

    push(point+1,n+1);

    else

    {

    push(point+1,n+1);

    pop(point,n);

    }

    }

    int push( int point,int n)

    {

    if(n==number) account++;

    else

    {

    push(point+1,n+1);

    pop(point,n);

    }

    }

    int main()

    {

    int point=1;

    scanf("%d",&number);

    push(point,1);

    printf("%d",account);

    return 0;

    }

  • 0
    @ 2009-10-31 16:34:02

    program E1_2;

    var

    n1,i,n:integer;

    a:array[0..20] of longint;

    cha1,cha2:longint;

    begin

    //init

    readln(n1);

    //main---|DiTui---|Catalan

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

    repeat

    inc(n);

    for i:=2 to n-1 do

    a[n]:=a[n]+a[i]*a[n-i+1];

    until n>=n1+2;

    //print

    writeln(a[n1+2]);

    end.

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    catlan递推

  • 0
    @ 2009-10-30 22:13:00

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    H2O题一道~~

    卡特兰可以~

    递归可以0ms~

    晒晒程序

    Var

    n:Longint;

    Function try(w,z:Longint):Longint;

    Begin

    If (w=0) and (z=0) Then Exit(1);

    If w=0 Then Exit(try(w,z-1));

    If z=0 Then Exit(try(w-1,z+1));

    Exit(try(w,z-1)+try(w-1,z+1));

    End;

    Begin

    Readln(n);

    Writeln(try(n,0));

    End.

  • 0
    @ 2009-10-30 13:09:13

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var

    a,b,c,i:longint;

    begin

    readln(a);

    c:=2*a;

    b:=1;

    for i:=1to a do begin

    b:=round(b*(c-i+1)/i);

    end;

    b:=round(b/(a+1));

    writeln(b);

    end.

    25题纪念...

  • 0
    @ 2009-10-27 11:52:22

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program ex;

    var i,j,n,ans:longint;

    procedure dfs(a,b:longint); {a:wei jin zhan; b:zhan nie}

    var i,j:longint;

    begin

    if (a=0)and(b=0) then

    begin

    inc(ans);

    exit;

    end;

    if a>0 then dfs(a-1,b+1); {push}

    if b>0 then dfs(a,b-1); {pop}

    end;

    begin

    readln(n);

    dfs(n,0);

    writeln(ans);

    end.

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

    const a:array[0..15] of longint=(1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9697845);

    var n:longint;

    begin

    readln(n);

    writeln(a[n]);

    end.

    卡拉然数

  • 0
    @ 2009-10-25 17:52:01

    program NOIP2003_1; {出栈序列统计}

    var n:shortint;

    function solve(l,m,r:shortint):longint;

    begin

    if (r>0) and (m>0) then solve:=solve(l,m+1,r-1)+solve(l+1,m-1,r);

    if (r>0) and (m=0) then solve:=solve(l,m+1,r-1);

    if (r=0) and (m>1) then solve:=solve(l+1,m-1,r);

    if (r=0) and (m=1) then solve:=1;

    end;

    begin

    readln(n);

    write(solve(0,0,n));

    end.

    找好递归公式就好办了

  • 0
    @ 2009-10-15 20:23:15

    var

    s,n1,n2,n3:int64;

    i,n:longint;

    begin

    readln(n);

    n1:=1; n2:=1; n3:=1;

    for i:=n+2 to 2*n do

    n1:=n1*i;

    for i:=1 to n do

    n3:=n3*i;

    begin s:=n1 div(n3);

    writeln(s); end;

    end.

    原来这么简单……

    (2n)!

    s= ---|---|---|---|---|--

    n!(n+1)!

  • 0
    @ 2009-10-13 22:44:42

    var

    x:array[0..15,0..15]of longint;

    n:longint;

    function dfs(i,j:longint):longint;

    begin

    if x-1 then exit(x)

    else

    begin

    x:=0;

    if j>0 then

    inc(x,dfs(i+1,j-1));

    if i>0 then

    inc(x,dfs(i-1,j));

    exit(x);

    end;

    end;

    begin

    readln(n);

    fillchar(x,sizeof(x),255);

    x[n,0]:=1;

    x[0,1]:=1;

    x[0,0]:=1;

    x[1,0]:=1;

    writeln(dfs(0,n));

    end.

    记忆化

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

    #include

    using namespace std;

    int n,s=0;

    void search(int x,int p)

    {

    if (x>n)

    {

    s++;

    return;

    }

    if (p>0)

    search(x,p-1);

    if (x>n;

    search(1,0);

    cout

  • 0
    @ 2009-10-08 17:43:15

    编译通过...

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

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

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

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

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

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

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

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

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

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

    include//完全抄袭(翻译)《栈的计数》解题报告,3.pas;

    int main()

    {

    double f;long n,i;

    scanf("%d",&n);

    f=1.0;

    for (i=1;i

  • 0
    @ 2009-10-07 22:05:24

    #include

    double jx(n)

    int n;

    {

    double k=1;

    int i;

    for(i=1;i

  • 0
    @ 2009-10-06 18:00:52

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var

    a,f,g:longint;

    c:array[1..16] of longint;

    procedure ch(n:longint;b:longint);

    var

    w,e:longint;

    begin

    if (n=0)and(b=0) then begin inc(g); exit; end else

    if n=0 then exit;

    if b=0 then ch(n-1,b+1) else

    if b

  • 0
    @ 2009-09-20 19:48:21

    递推秒杀之

  • 0
    @ 2009-09-17 20:36:14

    #include

    using namespace std;

    int f[40][20];

    int dg(int m,int n)

    {

    if (f[m][n]>0)

    return f[m][n];

    if (m==n||n==0)

    return 1;

    return f[m][n]=dg(m-1,n)+dg(m-1,n-1);

    }

    int main()

    {

    int n,i;

    cin>>n;

    cout

  • 0
    @ 2009-09-13 17:48:17

    program t1;

    var a:array[0..20,0..20]of longint;

    i,j,t,n:longint;

    begin

    read(n);

    a[1,1]:=1;

    for i:=2 to n+1 do

    for j:=1 to i do

    a:=a+a;

    write(a[n+1,n+1]);

    end.

  • 0
    @ 2009-09-05 17:32:01

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    汗呐 这题直接记忆化搜索就OK了。。

    程序简短到十几行

信息

ID
1122
难度
2
分类
组合数学 | Catalan数列 点击显示
标签
递交数
4090
已通过
2514
通过率
61%
被复制
22
上传者