题解

138 条题解

  • 0
    @ 2008-12-08 13:23:32

    program ball;

    var

    i,j,k,n,m:longint;

    f:array[0..30,0..30] of longint;

    begin

    readln(n,m);

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

    f[1,0]:=1;

    for k:=1 to m do

    begin

    f[1,k]:=f[2,k-1]+f[n,k-1];

    for i:= 2 to n-1 do (注意i是从二开始循环!!!)

    f:=f+f;

    f[n,k]:=f[n-1,k-1]+f[1,k-1];

    end;

    write(f[1,m]);

    end.

  • 0
    @ 2008-12-07 14:22:21

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program p1485;

    const

    maxnm=30;

    var

    n,m,i,j:integer;

    f:array[0..maxnm+1,0..maxnm+1] of longint;

    begin

    readln(n,m);

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

    f[0,1]:=1;f[1,2]:=1;f[1,n]:=1;

    for i:=1 to m do

      for j:=1 to n do

       begin

        if j=1

         then f:=f+f;

        if j=n

         then f:=f+f;

        if (j>1) and (j

  • 0
    @ 2008-12-06 22:10:32

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program p1485;

    const

    maxnm=30;

    var

    n,m,i,j:integer;

    f:array[0..maxnm+1,0..maxnm+1] of longint;

    begin

    readln(n,m);

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

    f[0,1]:=1;f[1,2]:=1;f[1,n]:=1;

    for i:=1 to m do

    for j:=1 to n do

    begin

    if j=1

    then f:=f+f;

    if j=n

    then f:=f+f;

    if (j>1) and (j

  • 0
    @ 2008-12-06 21:28:53

    不错的递推题..如果是原题说明出题的那帮人没有吃白饭.

  • 0
    @ 2008-12-06 20:09:38

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    秒杀!!!

    14行搞定!

    动态规划方程:

    i代表第几秒,j代表第几个人;

    v[0,1]:=1;

    for i:=1 to m do

    begin

    v:=v+v;(因为一号=上秒n号+上秒2号);

    for j:=2 to n-1 do

    v:=v+v;

    v:=v+v;

    end;

    writeln(v[m,1]);

    明白了吗?

  • 0
    @ 2008-12-06 16:45:53

    记忆化DP

    ~~~~~~~~

    仅供参考:

    var

    n,m:longint;

    x,y,i,j:longint;

    f:array[0..30,0..30] of longint;

    begin

    readln(n,m);

    f[0,1]:=1;

    for i:=1 to m do begin

    for j:=1 to n do begin

    x:=j+1;

    y:=j-1;

    if x>n then x:=1;

    if y

  • 0
    @ 2008-12-05 21:21:36

    垃圾题 用DP就行了 就是不知到考试的时候为什么会错

  • 0
    @ 2008-12-05 20:32:51

    program chuanqiu;

    var

    f:array[0..50,0..50] of longint;

    i,j,n,m:integer;

    function xu(x:integer):integer;

    begin

    if x=0 then x:=n

    else if x>n then x:=1;

    exit(x);

    end;

    begin

    read(n,m);

    if n=1 then write(0);

    if n=2 then

    if odd(m) then write(0) else write(1);

    if n>=3 then

    begin

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

    f[1,0]:=1;

    for j:=1 to m do

      for i:=1 to n do

       f:=f[xu(i-1),j-1]+f[xu(i+1),j-1];

       write(f[1,m]);

       end;

    end.

  • 0
    @ 2008-12-04 12:34:51

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-12-03 16:24:22

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    NOIP时,想打表,但是.....打了半个小时还在Running.....

    就这样,只拿了可怜的40分啊!!!!

  • 0
    @ 2009-09-12 21:59:19

    program chuanqiu;

    var

    f:array[0..50,0..50] of longint;

    i,j,n,m:integer;

    function xu(x:integer):integer;

    begin

    if x=0 then x:=n

    else if x>n then x:=1;

    exit(x);

    end;

    begin

    read(n,m);

    if n=1 then write(0);

    if n=2 then

    if odd(m) then write(0) else write(1);

    if n>=3 then

    begin

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

    f[1,0]:=1;

    for j:=1 to m do

    for i:=1 to n do

    f:=f[xu(i-1),j-1]+f[xu(i+1),j-1];

    write(f[1,m]);

    end;

    end.

  • 0
    @ 2008-12-02 20:57:03

    谨记,y=n和y>n,一失足成千古恨

  • 0
    @ 2008-12-02 17:39:36

    111

  • 0
    @ 2008-12-01 18:52:57

    `\`\

  • 0
    @ 2008-11-30 21:56:57

    话说这道题算不得DP吧

    明显就一个递推而已

    F:=F+F

    其中 J1= {J-1 (J〉1)或 N (J=1)}

    J2= {J+1 (J

  • 0
    @ 2008-11-30 20:00:28

    设f表示从小蛮开始传了i次后到第j个人手里的方法数,由于球只能向两边传,所以只有当传了i-1次时且球在与第j个人相邻的两个人之一手中,下一次(即第i次)才能传到j手中。由此得到递推式:

    f={f+f 1

  • 0
    @ 2008-11-30 19:57:18

    NOIP 时找不到规律 搜索骗了40分

  • 0
    @ 2008-11-30 19:55:08

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    1次ac

    枚举左右:当abs(向左传的次数-向右的) mod n=0时,可以传回来

    然后用组合公式求 C(左或右,m) 累加即可

    郁闷至极~~考试时居然没背过组合公式~~~~~~

    很诡异的WA了~~~

  • 0
    @ 2008-11-30 19:39:36

    猥琐的水题,少了个“=”,少算了一行,拉了我一个点,我也拉了题一个点……

    提交三次,终于秒掉……

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    Flag   Accepted

    题号   P1485

    类型(?)   动态规划

    通过   116人

    提交  199次

    通过率   58%

    难度   1

  • 0
    @ 2008-11-30 13:33:36

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    简单DP

    #include "stdio.h"

    main()

    {

    int f[31][31]={};

    int msum,nsum;

    int m,n;

    f[0][0]=1;

    scanf("%d%d",&nsum,&msum);

    for(m=1;m

信息

ID
1485
难度
3
分类
动态规划 点击显示
标签
递交数
4751
已通过
2234
通过率
47%
被复制
14
上传者