bzoj4517[Sdoi2016]排列计数(组合数,错排)
2024-08-30 16:57:47
4517: [Sdoi2016]排列计数
Time Limit: 60 Sec Memory Limit: 128 MB
Submit: 1792 Solved: 1111
[Submit][Status][Discuss]
Description
求有多少种长度为 n 的序列 A,满足以下条件:
1 ~ n 这 n 个数在序列中各出现了一次
若第 i 个数 A[i] 的值为 i,则称 i 是稳定的。序列恰好有 m 个数是稳定的
满足条件的序列可能很多,序列数对 10^9+7 取模。
Input
第一行一个数 T,表示有 T 组数据。
接下来 T 行,每行两个整数 n、m。
T=500000,n≤1000000,m≤1000000
Output
输出 T 行,每行一个数,表示求出的序列数
Sample Input
5
1 0
1 1
5 2
100 50
10000 5000
1 0
1 1
5 2
100 50
10000 5000
Sample Output
0
1
20
578028887
60695423
1
20
578028887
60695423
HINT
Source
/*
水水的组合数+错排
C(n,m)*D[n-m]
tm bzoj为什么还是CE!!
*/
#include<bits/stdc++.h> #define N 1000002
#define M 1000000007 using namespace std;
int n,m;
long long inv[N]={,},fac[N]={,},f[N]={,},D[N]; inline int read()
{
int x=,f=;char c=getchar();
while(c>''||c<''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} inline int C(int a,int b)
{
return ((fac[a]*inv[b])%M*inv[a-b]%M)%M;
} inline void init()
{
fac[]=;
for(int i=;i<=N;i++)
{
fac[i]=(1ll*fac[i-]%M*i)%M;
f[i]=((M-M/i)*f[M%i])%M;
inv[i]=(inv[i-]*f[i])%M;
}
} int main()
{
//freopen("ly.in","r",stdin);
D[]=;D[]=;init();
for(int i=;i<=N;i++)
D[i]=((i-)*(D[i-]%M+D[i-]%M))%M;
int T;cin>>T;
while(T--)
{
n=read();m=read();
if (n-m==) printf("0\n");
else if(m==n) printf("1\n");
else if(m==) cout<<D[n]<<endl;
else cout<<(1ll*C(n,m)*D[n-m])%M<<endl;
}
return ;
}
最新文章
- C#给PDF文档添加文本和图片页眉
- http status 状态码汇总
- Windows 8.1 新增控件之 TimePicker
- js-设置焦点
- IOS开发UI篇—导航控制器属性和基本使用
- PAT 解题报告 1051. Pop Sequence (25)
- 苹果Xcode帮助文档阅读指南
- PHP调用外部命令
- git之我常用的命令
- FastDFS_v5.05+nginx+cache集群安装配置手册
- 管理型交换机IEEE 802.1Q VLAN设置应用实例
- 关于RabbitMQ一点
- asp.net 进行发送邮箱验证
- ruby的循环使用及区别(for、each等)
- 如何让div在整个页面中居中?
- GOF23设计模式之中介者模式(mediator)
- 小程序页面的四种文件(JSON、WXML、WXSS、JS)加载顺序
- 【ospf-路由聚合】
- 经典网络LeNet5看卷积神经网络各层的维度变化
- C++大数板子
热门文章
- Android——ListView优化
- CentOS7虚拟机桥接设置及问题
- 使用JWT设计SpringBoot项目api接口安全服务
- sanic官方文档解析之streaming(流动,滚动)和class_based_views(CBV的写法)
- CH 5102 Mobile Service(线性DP)
- 时光轴一之listView实现时光轴效果
- 今日头条上看到的js面试题和答案
- @SpringBootApplication 注解
- 自定义表单SQL命令行批量删除垃圾留言
- 【扬中集训 DAY4T3】holiday