Time Limit: 60 Sec  Memory Limit: 128 MB
Submit: 1626  Solved: 994
[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

 
啊啊为什么我这么菜QWQ。。
这题一个公式就过去了,
考虑一个数$i$,只有当$i$在第$i$个位置时才能产生贡献,
那么需要产生$m$个数的方案就是$C_n^m$
然后让剩下的数错排,设错排的方案数为$D(i)$
递推公式$D[i]=(i-1)*D(i-1)*D(i-2)$
证明:

#include<cstdio>
#define int long long
using namespace std;
const int mod=1e9+;
const int MAXN=1e6+;
inline int read()
{
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int fac[MAXN],D[MAXN],inv[MAXN];
void Pre()
{
fac[]=fac[]=inv[]=inv[]=D[]=D[]=;
for(int i=;i<=;i++) fac[i]=(i*fac[i-])%mod;
for(int i=;i<=;i++) inv[i]=(mod-mod/i)*inv[mod%i]%mod;
for(int i=;i<=;i++) inv[i]=(inv[i]*inv[i-])%mod;
for(int i=;i<=;i++) D[i]=((i-)*(D[i-]+D[i-]))%mod;
}
int Query(int N,int M)
{
return fac[N] %mod * inv[ N-M ] %mod * inv[ M ] %mod * D[N-M] %mod;
}
main()
{
Pre();
int T=read();
while(T--)
{
int N=read(),M=read();
printf("%lld\n",Query(N,M)%mod);
}
return ;
}

最新文章

  1. [转载]TFS与Project、Excel同步
  2. Spring JdbcTemplate 的使用与学习
  3. 打包bat等文件成exe,双击运行不显示dos窗口,exe不报毒
  4. SqlServer2008R2执行Sql语句,快捷键
  5. Eclipse 中打不开android sdk managerf
  6. 括弧匹配检验(check)
  7. 【HDU 4352】 XHXJ&#39;s LIS (数位DP+状态压缩+LIS)
  8. 《ACM国际大学生程序设计竞赛题解I》——6.10
  9. 用urllib2实现一个下载器的思路
  10. 转:测试计划(出处:: 51Testing软件测试网--zfx081)
  11. &lt;转&gt;Python的内存泄漏及gc模块的使用分析
  12. C#的静态构造函数
  13. ASP.NET网站运行常见错误以及解决方法(持续更新)
  14. java读取请求中body数据
  15. Spark 基础之SQL 快速上手
  16. Linux - 操作系统的发展史
  17. Linux umask
  18. hdu 2874(裸LCA)
  19. MongoDB C# 驱动的各种版本下载地址
  20. apache跨域

热门文章

  1. scala类型系统:24) 理解 higher-kinded-type
  2. c# cookie帮助类
  3. 很实用的html meta标签实现页面跳转
  4. vue中怎样实现 路由拦截器
  5. 01 Centos安装python3
  6. 【笔记】Linux就该这么学-第六课第四章
  7. eas之获取各模块系统状态信息
  8. codevs 2602 最短路径问题——良心题解
  9. 23.partial update
  10. Python之Django的Model2