組合數學靠運氣


組合數學靠運氣
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic Discuss
Problem Description

n 個不同糖果,放到 m 個看起來一樣禮品盒里。允許盒子為空。
求可用的方案數,答案對 20170825 取模。
Input

輸入兩個數字 n, m(1⩽n,m⩽100)。
Output

輸出答案對 20170825 取模的結果。
Example Input

4 2
Example Output

8
Hint

Author

【2016級ACM暑假集訓 結訓賽(算法組)】Stone

n個球,m個盒子,組合數學,第二類斯特林數。
狀態轉移:
dp[n][m] = m * dp[n-1][m-1] + dp[n-1][m-1];
然后枚舉箱子個數,加和。

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#define Mod 20170825
using namespace std;
int main()
{
int n, m;
scanf("%d %d", &n, &m);
long long int dp[234][134] = {0};
dp[0][0] = 1;
dp[1][1] = 1;
for(int i=2;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
dp[i][j] = (dp[i-1][j]*j%Mod + dp[i-1][j-1]%Mod)%Mod;
}
}
long long int ans = 0;
for(int i=0;i<=m;i++)
ans = (ans%Mod + dp[n][i]%Mod)%Mod;
printf("%lld\n", ans);
return 0;
}

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



組合數學總結 『組合數學基礎』 組合數學 隨記 組合數學八題 組合數學打表 組合數學八題 組合數學筆記 模板:組合數學 組合數學 逆元 第6章 組合數學
 
粤ICP备14056181号  © 2014-2020 ITdaan.com