HDU4372(第一类斯特林数)
来源:互联网 发布:python手机自动化脚本 编辑:程序博客网 时间:2024/04/28 19:17
HDU4372(第一类斯特林数)
分类: 组合博弈2013-08-03 14:54 27人阅读 评论(0) 收藏 举报
题目:Count the Buildings
题意:N座高楼,高度均不同且为1~N中的数,从前向后看能看到F个,从后向前看能看到B个,问有多少种可能的排列数。
0 < N, F, B <= 2000
首先我们知道一个结论:n的环排列的个数与n-1个元素的排列的个数相等,因为P(n,n)/n=(n-1)!。
可以肯定,无论从最左边还是从最右边看,最高的那个楼一定是可以看到的.
假设最高的楼的位置固定,最高楼的编号为n,那么我们为了满足条件,可以在楼n的左边分x-1组,右边分y-1组,且用每
组最高的那个元素代表这一组,那么楼n的左边,从左到右,组与组之间最高的元素一定是单调递增的,且每组中的最高元
素一定排在该组的最左边,每组中的其它元素可以任意排列(相当于这个组中所有元素的环排列)。右边反之亦然。
然后,可以这样考虑这个问题,最高的那个楼左边一定有x-1个组,右边一定有y-1个组,且每组是一个环排列,这就引出
了第一类Stirling数(个人分成组,每组内再按特定顺序围圈的分组方法的数目)。
我们可以先把n-1个元素分成x-1+y-1组,然后每组内部做环排列。再在所有组中选取x-1组放到楼n的左边。所以答案是
ans(n, f, b) = C[f + b - 2][f - 1] * S[n - 1][f + b - 2];
- #include <iostream>
- #include <string.h>
- #include <stdio.h>
- using namespace std;
- typedef long long LL;
- const int N=2005;
- const LL MOD=1000000007;
- LL C[N][N];
- LL S[N][N];
- void Init()
- {
- int i,j;
- for(i=0;i<N;i++)
- {
- C[i][0]=1;
- C[i][i]=1;
- S[i][0]=0;
- S[i][i]=1;
- for(j=1;j<i;j++)
- {
- C[i][j]=(C[i-1][j]%MOD+C[i-1][j-1]%MOD)%MOD;
- S[i][j]=((i-1)%MOD*S[i-1][j]%MOD+S[i-1][j-1]%MOD);
- }
- }
- }
- int main()
- {
- LL t,n,f,b,ans;
- Init();
- scanf("%I64d",&t);
- while(t--)
- {
- scanf("%I64d%I64d%I64d",&n,&f,&b);
- ans=C[f+b-2][f-1]%MOD*S[n-1][f+b-2]%MOD;
- printf("%I64d\n",ans);
- }
- return 0;
- }
- HDU4372(第一类斯特林数)
- HDU4372(第一类斯特林数)
- 第一类斯特林数 hdu4372
- hdu4372 第一类斯特林数
- hdu4372(第一类斯特林数) Count the Buildings
- hdu3625 Examining the Rooms && hdu4372 Count the Buildings(第一类斯特林数)
- #HDU4372#Count the Buildings(第一类Stirling数经典)
- HDU4372-Count the Buildings(第一类Stirling数+组合计数)
- HDU3625 第一类斯特林数
- hdu3625-第一类斯特林数
- hdu 3625 第一类斯特林数
- hdu 4372 第一类斯特林数
- 第一类斯特林数学习小记
- 第一类斯特林数 hdu 3625
- zoj3344 第一类斯特林数+java大数
- HDU4372Count the Buildings(第一类斯特林数)
- 【第一类斯特林数】自然数幂和
- 【第一类斯特林数】HDU_3625_Examining the Rooms
- 返回指向局部变量的指针或引用的带来的问题讨论
- 容斥原理应用(求1~r中有多少个数与n互素)
- CDialog上使用CToolBar+CReBar
- hdu 1171 Big Event in HDU 多重背包
- hdu4576 Robot
- HDU4372(第一类斯特林数)
- 如何架构一个ios项目 个人经验总结
- sqlplus连接远程数据库
- HDU4542(反素数+DFS+暴力打表)
- UVA1424----Salesmen----动态规划
- JAVA爱情
- HttpURLConnection 分析总结
- 经典论文翻译导读之《Google File System》
- 生活感悟一