题解

57 条题解

  • 0
    @ 2009-07-11 21:46:05

    以后再做

  • 0
    @ 2009-05-30 16:48:25

    var n,i,j,r:longint;f:array[0..11,0..11]of longint;

    begin

    readln(n,r);

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

    for i:=1 to n do f:=1;

    for i:=2 to n do

    for j:=2 to r do

    begin

    f:=f+f*j;

    end;

    for i:=1 to r do f[n,r]:=f[n,r]*i;

    writeln(f[n,r]);

    end.

  • 0
    @ 2009-03-12 23:56:28

    编译通过...

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

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

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

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

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

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

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

    初始化0

    1 2 3 4 5 6 7 8 9 10盒子数

    1 1

    2 1 1+0*2=1 ……

    3 1 1+1*2=3 1+0*3=1

    4 1 1+3*2=7 3+3*3=6

    5 1 …… 7+6*3=25

    6 1 …… ……

    7 1 ……

    8 1

    9 1

    即:

    初始化

    x[20][100]={0};

    盒子为1,球数为1的赋值

    for(i=1;i

  • 0
    @ 2008-11-12 00:05:37

    感谢各位大牛的讲解,又学了写新东西!

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

    编译通过...

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

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

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

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

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

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

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

    var n,i,j,r:longint;f:array[0..11,0..11]of longint;

    begin

    readln(n,r);

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

    for i:=1 to n do f:=1;

    for i:=2 to n do

    for j:=2 to r do

    begin

    f:=f+f*j;

    end;

    for i:=1 to r do f[n,r]:=f[n,r]*i;

    writeln(f[n,r]);

    end.

  • 0
    @ 2008-10-11 19:28:27

    #include

    main()

    {int n,m,i,j,f[100][100],q=1;

    scanf("%d%d",&n,&m);

    f[0][0]=1;

    for(i=1;i

  • 0
    @ 2008-10-06 09:09:38

    F代表前I个盒子放J个球的方案数所以,前I个盒子可以放I to n-(box-i)个球所以,前I-1个盒子可以放I-1 to J-1个球根据加法原理和乘法原理,F:=F+F*当前球的组合数...最后F[BOX,N]就是结果...由于当前阶段只和前一阶段有关,所以可以用滚动数组...

    其实我的排列组合以及递推很弱...

  • 0
    @ 2008-10-06 08:55:45

    for i:=1 to n do

    s:=1;//一个盒子的时候全都是1种

    for i:=2 to n do

    for j:=2 to r do

    s:=s+s*j

    for i:=1 to r do

    s[n,r]:=s[n,r]*i

  • 0
    @ 2008-09-29 23:58:16

    s[0][0]=1

    s[i][j]=s[j]*j+s[j-1]

    ans=s[m][r]*(r!)

  • 0
    @ 2008-09-24 19:56:50

    可先算 把R个球放入R个盒子的方案 再递推出N个盒子的方案

  • 0
    @ 2008-09-19 16:13:46

    首先考虑所有盒子都相同的情况

    用f表示前i个球放入前j个盒子里的方法数

    讨论此时最后一个球,也就是第i个球

    1 这个球单独放入第j个盒子 方法数为 f

    2 这个球放入前面已经放过球的盒子 方法数为 f*j(有j种不同的放法)

    因此 f = f+f*j

    然后再考虑所有盒子不同的情况

    对盒子进行排列 r个盒子一共有A(r,r)也就是r!种排列方法 根据乘法原理

    每一种排列都对应每一种f[n,r]所以 最后答案为f[n,r]*r!

    (最后一个不是感叹号。是阶乘)

  • 0
    @ 2008-09-15 13:28:37

    编译通过...

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

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

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

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

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

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

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

    哇哈哈哈哈哈哈哈哈终于对啦.

    for i := 2to n do

    for j := 2 to r do

    s:=s+s*j;

    for i := 1to r do

    s[n,r]:=s[n,r]*i;

    就是这个.啊哈哈哈哈哈哈哈哈哈.

  • 0
    @ 2008-08-26 19:43:32

    for i:=1 to n do

    for j:=1 to m do f:=f+f*j;

    for i:=1 to m do f[n,m]:=f[n,m]*i;

    这才是正确的。~!

  • 0
    @ 2008-08-20 22:12:33

    找了一个递推式:

    k:=n-r+1;

    for i:=1 to k do f[r,n]:=f[r,n]+c(n,i)*f[r-1,n-i];

    思路就是对最后一个盒子进行分类讨论

  • 0
    @ 2007-11-15 21:16:32

    编译通过...

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

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

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

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

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

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

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

    ....

    似乎hint错了。。。

  • 0
    @ 2007-10-06 16:46:22

    排列组合数学问题。。。

  • 0
    @ 2007-09-25 11:47:12

    ans=k!*s2(n,k)

    s2(n,k)=s2(n-1,k-1)+s2(n-1,k)*k;

    s2(n,k)表示把n个球(不同),放到k个盒子(相同)中的方法总数。

  • 0
    @ 2007-07-25 20:50:10

    const maxn=10 {球的最大数目}

    var s:array[0..maxn, 0..maxn]of longint; {存放第二类数}

    (2)用下列二重循环求S(n, r)

    ① 置S[0, 0]=1;

    ② for i:=1 to n do

    for j:=1 to r do

    S(i, j)=i*S(i-1,j)+S(i-1, j-1)

    ③ 计算方案数S

    S:=S[n, r]

    For i:=1 to r do S:=S*I;

    这个对吗?

  • 0
    @ 2007-07-24 14:40:18

    真 不知道有 个这样的 公式哦 !!!

    害的 我 一看到数据只有10 就马上搜索!

  • 0
    @ 2007-07-23 15:15:50

    感谢大牛们的精辟结论

  • 0
    @ 2007-07-22 14:16:45

    a:=s*(a+a);

    注意A数组下限为0

信息

ID
1210
难度
3
分类
组合数学 | Stirling数 点击显示
标签
(无)
递交数
1240
已通过
662
通过率
53%
被复制
3
上传者