洛谷:P1287 盒子与球(数学的排列组合,普及-)

    技术2026-08-23  8

    题目:

    分析:

    这题都能跑偏? 刚开始想dp的话,加入3个球,还需要考虑取哪三个,连最基本的dp的五后效性都忘了?

    j*(f[i-1][j]+f[i-1][j-1]);

    I个球放入j个盒子。 第二个是指单独放,哪个盒子单独,所以乘以单独盒子的个数。(错误思想:我还要考虑哪个单独呀!,再仔细想想吧!) 第一个是指放在同一个盒子里。j个盒子,j中放法。

    智力水平又下降了吗?o(╥﹏╥)o

    代码:

    #include<bits/stdc++.h> using namespace std; int n,m; long long f[15][15]; int main() { cin>>n>>m; f[1][1]=1; for(int i=2;i<=n;i++) for(int j=1;j<=min(i,m);j++) f[i][j]=j*(f[i-1][j]+f[i-1][j-1]); cout<<f[n][m]<<endl; return 0; }

    再次做这个题,还是没做出来。

    加个“前”,应该更好理解了。

    Processed: 0.012, SQL: 9