HDU2643 Rank 第二類斯特林數

2021-08-25 14:31:26 字數 744 閱讀 4920

題目:

題意:

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...