題目:
題意:
n個人,有多少種排名方案,允許並列。
分析:
問題轉化:
n個球,m個不同的盒子,盒子非空;
由f[n][m]表示:n個球,m個相同盒子,盒子非空的方案數;
那麼m!*f[n][m]即為盒子不同的方案數;
而f[n][m]即為第二類斯特林數;
遞推關係:
f[n][m]=m*f[n-1][m]+f[n-1][m-1];
f[n][1]=f[n][n]=1;
**:
#include
using
namespace
std;
typedef
long
long ll;
const
int tmax=105;
const ll mod=20090126;
ll f[tmax][tmax],fac[tmax];
void init()
fac[0]=fac[1]=1;
for(int i=2;i<=100;i++)
fac[i]=fac[i-1]*i%mod;
return;
}int main()
return
0;}
hdu 2643 Rank(第二類斯特林數)
n個人的名次,因為有並列排名的情況,所以共n種情況,只有1個名次 所有人並列第一 到一共n個名次。對於某種情況,假設現在有x個名次,每個名次不知道多少人,就是有x個盒子,每個盒子內至少分配乙個人,即n個數的集合的劃分為x個非空集合方法的數目,正好是第二類斯特林數,在這裡還要計數不同的排列方式,即這x...
HDOJ 2643 第二類斯特林數
n位選手參加比賽,每個選手有乙個排名,有可能有並列,那麼排名情況有多少種可能?n位選手參加比賽,每個選手有乙個排名,有可能有並列,那麼排名情況有多少種可能?n位選手可以放到1個集合,兩個集合。n個集合,因為每個集合對應的是名次,所以集合是區分的。那麼對於n個選手,可以選擇的方案數 ni 1s2,n,...
Rank HDU 2643 (第二類斯特林數)
hdu 2643 題意 n個人比賽,問最後的排名有多少種情況。第二類斯特林數 最後可能有i個名次 因為有並列 所以我們把n個人分成i個集合,s2 n,i 然後這i個集合再全排列。i 1,2,3,n.1 include 2 using namespace std 3 define ll long lo...