日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

hdu - 2512 一卡通大冒险 (斯特灵数 贝尔数)

發(fā)布時(shí)間:2025/3/16 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu - 2512 一卡通大冒险 (斯特灵数 贝尔数) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://acm.hdu.edu.cn/showproblem.php?pid=2512? ??

/** 題意:給你k張不同的卡放到n本書里有多少種放法?(n是無(wú)限大) 典型的 斯特靈數(shù)第二類 +貝爾數(shù) 斯特靈數(shù):如:給你k張牌放到n個(gè)無(wú)標(biāo)號(hào)的盤子里(盤子不能為空)問(wèn)你有多少種方法; Stirling[i][j] = Stirling[i-1][j-1] + j * Stirling[i-1][j] 表示前i張牌放到j(luò)個(gè)盤子里的方法數(shù)可以由前i-1張牌放到j(luò)-1個(gè)盤子里的方法數(shù)(相當(dāng)于在其后加一張牌一個(gè)盤子) + 前i-1張牌放到j(luò)個(gè)盤子里(再加一張牌可以放到j(luò)個(gè)盤子里) * j ; 貝爾數(shù):就是斯特靈數(shù)的和(即所求值) **/ #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int Stirling[20005][20005]; int Bell[2005]; void init(){for(int i = 1;i <= 2000;i++)//斯特靈數(shù){Stirling[i][i] = 1;for(int j = 1;j < i;j++){Stirling[i][j] = (Stirling[i-1][j-1] + Stirling[i-1][j] * j)%1000;}}for(int i = 1;i <= 2000;i++)//貝爾數(shù){for(int j = 1;j <= i;j++)Bell[i] = (Bell[i] + Stirling[i][j]) % 1000;} } int main(){init();int t;cin >> t;int n;while(t--){cin >> n;cout << Bell[n] << endl;} }





斯特靈數(shù)第一類:

第一類:n個(gè)元素分成k個(gè)非空循環(huán)排列(環(huán))的方法總數(shù)

遞推式:s(n+1,k)=s(n,k-1)+n*s(n,k)

解釋:考慮第n+1個(gè)元素 1、單獨(dú)形成循環(huán)排列,剩下的有s(n,k-1)種方法 2、和別的元素一起形成循環(huán)排列,n個(gè)元素形成循環(huán)排列的方法數(shù)是s(n,k),第n+1個(gè)可以放在第i個(gè)元素左邊,共有n種放法,一共是n*s(n,k);

code : 如第二類相似

轉(zhuǎn): http://www.cnblogs.com/xiaohongmao/p/3645517.html

總結(jié)

以上是生活随笔為你收集整理的hdu - 2512 一卡通大冒险 (斯特灵数 贝尔数)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。