博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3088 斯特林数
阅读量:5142 次
发布时间:2019-06-13

本文共 1782 字,大约阅读时间需要 5 分钟。

第一类Stirling数是有正负的,其绝对值是n个元素的项目分作k个环的方法数目。常用的表示方法有s(n,k) , \left[\begin{matrix} n \\ k \end{matrix}\right]

换个较生活化的说法,就是有n个人分成k组,每组内再按特定顺序围圈的分组方法的数目。例如s(4,2)=11

  1. {A,B},{C,D}
  2. {A,C},{B,D}
  3. {A,D},{B,C}
  4. {A},{B,C,D}
  5. {A},{B,D,C}
  6. {B},{A,C,D}
  7. {B},{A,D,C}
  8. {C},{A,B,D}
  9. {C},{A,D,B}
  10. {D},{A,B,C}
  11. {D},{A,C,B}

给定s(n,0)=0,s(1,1)=1,有关系s(n,k)=s(n-1,k-1) + (n-1) s(n-1,k)

======================================================================================================================================================

第二类Stirling数是n个元素的集定义k个的方法数目。常用的表示方法有S(n,k) , S_n^{(k)} ,  \left\{\begin{matrix} n \\ k \end{matrix}\right\}

换个较生活化的说法,就是有n个人分成k组的分组方法的数目。例如有甲、乙、丙、丁四人,若所有人分成1组,只能所有人在同一组,因此S(4,1)=1;若所有人分成4组,只能每人独立一组,因此S(4,4)=1;若分成2组,可以是甲乙一组、丙丁一组,或甲丙一组、乙丁一组,或甲丁一组、乙丙一组,或其中三人同一组另一人独立一组,即是:

  1. {A,B},{C,D}
  2. {A,C},{B,D}
  3. {A,D},{B,C}
  4. {A},{B,C,D}
  5. {B},{A,C,D}
  6. {C},{A,B,D}
  7. {D},{A,B,C}

因此S(4,2)=7

 

给定S(n,n)=S(n,1)=1,有递归关系S(n,k) = S(n-1,k-1) + k S(n-1,k)

======================================================================================================================================================

poj 3088 题意: 给一串数字1、2、...、B,求这些数字分组的情况数,{(1),(2)} {(2),(1)} 算两种不同的情况

解法:赤裸裸的第二类斯特林数

#include 
#include
#include
#include
using namespace std;long long c[15][15] , s[15][15] ,f[15];void dabiao(){ c[0][0]=1,f[1]=f[0]=1,s[1][1]=1; for(int i=1; i<=11;i++){ f[i]=f[i-1]*i; c[i][0]=1 ,c[i][1] = i; s[i][1]=1,s[i][i]=1,s[i][0]=0; for(int j=2;j<=11;j++){ c[i][j] = c[i-1][j-1]+c[i-1][j] ; s[i][j]=s[i-1][j-1]+j*s[i-1][j] ; } }}int main(){ int t; scanf("%d",&t); dabiao(); int ncase =1; while(t--){ int n; long long ans= 0; scanf("%d", &n) ; for(int i=1;i<=n;i++){ for(int j=1;j<=i;j++){ ans+=c[n][i]*s[i][j]*f[j] ; } } printf("%d %d %lld\n",ncase++,n,ans) ; } return 0;}

 

转载于:https://www.cnblogs.com/Scale-the-heights/p/4712351.html

你可能感兴趣的文章
侧边栏广告和回到顶部
查看>>
https://blog.csdn.net/u012106306/article/details/80760744
查看>>
ios应用版本号设置规则
查看>>
海上孤独的帆
查看>>
error: more than one device and emulator 问题解决
查看>>
Java基础:容器
查看>>
YUV摘要格式
查看>>
【方法2】删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录
查看>>
C# CheckedListBox控件的使用方法
查看>>
【HDOJ】2007平方和与立方和
查看>>
js中const,var,let区别
查看>>
SharePoint自定义程序页面部署 不用重启IIS
查看>>
2014-11-30-2333-Java-数组
查看>>
Nginx 自动补全url地址补全最后的斜线
查看>>
【SQL Server 2008 安装全过程】
查看>>
xml的解析及案例的分析和分享
查看>>
[译] 盘点CSS3中的新特性
查看>>
Test
查看>>
猜字母
查看>>
POJ 2421 Constructing Roads(最小生成树)
查看>>