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

Sample Output

0
1
20
578028887
60695423

HINT

 

Source

鸣谢Menci上传

/*
水水的组合数+错排
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 ;
}

最新文章

  1. C#给PDF文档添加文本和图片页眉
  2. http status 状态码汇总
  3. Windows 8.1 新增控件之 TimePicker
  4. js-设置焦点
  5. IOS开发UI篇—导航控制器属性和基本使用
  6. PAT 解题报告 1051. Pop Sequence (25)
  7. 苹果Xcode帮助文档阅读指南
  8. PHP调用外部命令
  9. git之我常用的命令
  10. FastDFS_v5.05+nginx+cache集群安装配置手册
  11. 管理型交换机IEEE 802.1Q VLAN设置应用实例
  12. 关于RabbitMQ一点
  13. asp.net 进行发送邮箱验证
  14. ruby的循环使用及区别(for、each等)
  15. 如何让div在整个页面中居中?
  16. GOF23设计模式之中介者模式(mediator)
  17. 小程序页面的四种文件(JSON、WXML、WXSS、JS)加载顺序
  18. 【ospf-路由聚合】
  19. 经典网络LeNet5看卷积神经网络各层的维度变化
  20. C++大数板子

热门文章

  1. Android——ListView优化
  2. CentOS7虚拟机桥接设置及问题
  3. 使用JWT设计SpringBoot项目api接口安全服务
  4. sanic官方文档解析之streaming(流动,滚动)和class_based_views(CBV的写法)
  5. CH 5102 Mobile Service(线性DP)
  6. 时光轴一之listView实现时光轴效果
  7. 今日头条上看到的js面试题和答案
  8. @SpringBootApplication 注解
  9. 自定义表单SQL命令行批量删除垃圾留言
  10. 【扬中集训 DAY4T3】holiday