Count the Buildings HDU - 4372 第一类striling 数
2017-07-08 11:06
471 查看
这个题和我们之前用dp递推的那道题一摸一样,但是数据范围变大了,如果还用之前的方法dp[i][f][p] 就会超空间,然后超时,因为有三层循环。。
题意:有n个建筑,排成一行,从左往右看可以看到F个建筑,从右往左看可以看到B个建筑,问这些建筑排列形式一共有多少种
知识点是:第一类斯特林数(striling 数)
s(p)(k)计数的是把p个对象排成k个非空循环排列的方法数。
这里相当与我们把n-1个长方体分为(f+p-2)组,然后左边f-1组,右边选p-1种。每组种都是最长的放在左边,过着把最长的放在右边。就是相当于循环排列的总数,就是(num-1)!
题意:有n个建筑,排成一行,从左往右看可以看到F个建筑,从右往左看可以看到B个建筑,问这些建筑排列形式一共有多少种
知识点是:第一类斯特林数(striling 数)
s(p)(k)计数的是把p个对象排成k个非空循环排列的方法数。
这里相当与我们把n-1个长方体分为(f+p-2)组,然后左边f-1组,右边选p-1种。每组种都是最长的放在左边,过着把最长的放在右边。就是相当于循环排列的总数,就是(num-1)!
#include <iostream> #include <cstring> #include <algorithm> #include <cstdio> #include <cmath> #include <queue> using namespace std; const int maxn = 2010; #define LL long long #define inf 1000000007 LL s[maxn][maxn]; LL c[maxn][maxn]; int main() { s[0][0]=s[1][1]=1; for(int i=1;i<=2000;i++) { for(int j=1;j<=i;j++)// { s[i][j]=(s[i-1][j-1]+(i-1)*s[i-1][j])%inf; } } c[0][0]=1; for(int i=1;i<=2000;i++) { c[i][0]=c[i][i]=1; for(int j=0;j<i;j++) c[i][j]=(c[i-1][j]+c[i-1][j-1])%inf; } int t; scanf("%d",&t); while(t--) { int n,f,b; scanf("%d %d %d",&n,&f,&b); LL ans=(s[n-1][f+b-2]*c[f+b-2][f-1])%inf;// printf("%I64d\n",ans); } return 0; }
相关文章推荐
- Count the Buildings HDU - 4372 第一类striling 数
- Count the Buildings HDU - 4372 第一类striling 数
- Count the Buildings HDU - 4372 第一类striling 数
- Count the Buildings HDU - 4372 第一类striling 数
- Count the Buildings HDU - 4372 第一类striling 数
- Count the Buildings HDU - 4372 第一类striling 数
- Count the Buildings HDU - 4372 第一类striling 数
- Count the Buildings HDU - 4372 第一类striling 数
- [第一类斯特林数 组合] HDU 4372 Count the Buildings
- [HDU 4372]Count the Buildings(第一类斯特林数+组合数)
- 【HDU 4372】 Count the Buildings (第一类斯特林数)
- hdu 4372 Count the Buildings(第一类斯特林数)
- [HDU]4372 Count the Buildings 第一类斯特林数
- HDU 4372 Count the Buildings [第一类斯特林数]
- 【第一类斯特林数】HDU_4372_ Count the Buildings
- HDU 4372 Count the Buildings(组合数学-斯特林数,组合数学-排列组合)
- HDU 4372 Count the Buildings [组合数学]
- HDU 4372 Count the Buildings
- HDU 4372 Count the Buildings 组合数学
- HDU 4372 Count the Buildings 组合数学