BZOJ4517 [Sdoi2016]排列计数
来源:互联网 发布:装修设计软件 编辑:程序博客网 时间:2024/05/19 14:35
序列里任意m个数稳定都是等价的,考虑不稳定的那几个就是裸错排
所以错排*组合数即可
f[n-m]*C(m,n)
为什么今年省选都这么喜欢错排?
错排递推试可以看这里
#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<ctime>#include<vector>#include<stack>#include<queue>#include<set>#include<bitset>#include<map>using namespace std;#define MAXN 1000010#define MAXM 10010#define INF 1000000000#define MOD 1000000007#define ll long long#define eps 1e-8ll fac[MAXN],ine[MAXN];int n,m;ll f[MAXN];int main(){ int i; fac[0]=ine[0]=ine[1]=1; for(i=1;i<MAXN;i++){ fac[i]=fac[i-1]*i%MOD; } for(i=2;i<MAXN;i++){ ine[i]=(MOD-MOD/i)*ine[MOD%i]%MOD; } for(i=2;i<MAXN;i++){ ine[i]=ine[i-1]*ine[i]%MOD; } f[0]=1; f[1]=0; f[2]=1; for(i=3;i<=1000000;i++){ f[i]=(f[i-1]+f[i-2])*(i-1)%MOD; } int tmp; scanf("%d",&tmp); while(tmp--){ scanf("%d%d",&n,&m); printf("%lld\n",fac[n]*ine[m]%MOD*ine[n-m]%MOD*f[n-m]%MOD); } return 0;} /*51 2 1 1 2 */
0 0
- [bzoj4517][SDOI2016]排列计数
- bzoj4517: [Sdoi2016]排列计数
- BZOJ4517 [Sdoi2016]排列计数
- bzoj4517【SDOI2016】排列计数
- 【bzoj4517】【SDOI2016】排列计数
- bzoj4517: [Sdoi2016]排列计数
- BZOJ4517: [Sdoi2016]排列计数
- bzoj4517: [Sdoi2016]排列计数
- bzoj4517 [Sdoi2016]排列计数
- BZOJ4517 [Sdoi2016][排列计数]
- BZOJ4517——[Sdoi2016]排列计数
- bzoj4517 sdoi2016 排列计数 错排
- [bzoj4517][Sdoi2016]排列计数(组合数学)
- [BZOJ4517][SDOI2016]排列计数(排列组合)
- 【BZOJ4517】【Sdoi2016】排列计数 线性逆元 错位排列
- [BZOJ4517][Sdoi2016]排列计数(错排+组合数)
- [BZOJ4517][Sdoi2016]排列计数(组合数+逆元)
- [bzoj4517][Sdoi2016]排列计数 组合数+逆元
- RDD
- 移动广告sdk开发
- 工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解
- 逆水行舟,不进则退
- hdu 2126 背包种类
- BZOJ4517 [Sdoi2016]排列计数
- 练习三1005
- Shell编程入门总结(三)
- 大小端判断
- (4.4.14.1) 细说Android事件传递机制(dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent)
- javap的理解
- hadoop正式学习之redis------redis的学习和操作2
- PHP字符串常用函数
- vtk实战(四十九)——使用vtkCell3D构建三维形体