题目链接:http://acm.fzu.edu.cn/problem.php?pid=2282

编号1~n的置换,不动点个数大于等于k的方案数。

参考百度百科错排公式,可以知道长度为n,每个数都不在自己位置的方案数。然后枚举长度即可。

考虑对立面(即小于k个在自己位置的)可以优化空间。

#include<cstdio>
#include<algorithm>
using namespace std; const int maxn=;
const int md=;
int D[maxn];
int C[maxn][];
int F[maxn]; int main()
{
D[]=;
D[]=;
D[]=;
for (int i=;i<=;i++)
{
D[i]=1ll*(i-)*(0ll+D[i-]+D[i-])%md;
}
C[][]=;
for (int i=;i<=;i++)
{
C[i][]=;
for (int j=;j<=min(,i);j++)
{
C[i][j]=(C[i-][j-]+C[i-][j])%md;
}
}
F[]=;
for (int i=;i<=;i++)
{
F[i]=1ll*F[i-]*i%md;
}
int t;
scanf("%d",&t);
while (t--)
{
int n,k;
scanf("%d%d",&n,&k);
int ans=F[n];
for (int i=;i<k;i++)
{
ans=(ans-1ll*C[n][i]*D[n-i]%md+md)%md;
}
printf("%d\n",ans);
}
return ;
}

最新文章

  1. android初级篇之apk签名key keystore格式转pk8+x509.pem
  2. bootstrap 实战入门教程(一)
  3. android scrollview 实现上下左右滚动方法
  4. &quot;本地泛解析&quot;或者叫做”域名劫持泛解析“,做开发二级域名在内网测试
  5. Windows下安装Ruby
  6. Android 自定义NumProgressBar
  7. HDOJ 2097
  8. splunk rest api search
  9. 在linux下安装Mongodb
  10. 编译器手工开栈(hdu可以其他可以尝试)
  11. java 代码如何生成 chm
  12. uri中为什么本地文件file后面跟三个斜杠, http等协议跟两个斜杠?
  13. 【WS-Federation】到底有多少公司在用WS-Federation
  14. SVN安装手册
  15. UberX及以上级别车奖励政策(优步北京第一组)
  16. centos 5.3 安装(samba 3.4.4)
  17. Jet.com
  18. np.unravel_index
  19. Ubuntu 中使用git 上传代码
  20. Hystrix 容错处理

热门文章

  1. queue消息队列
  2. python三大神器之生成器
  3. 嵌入式框架Zorb Framework搭建三:列表的实现
  4. responsive grid
  5. Hibernate-ORM:16.Hibernate中的二级缓存Ehcache的配置
  6. MySQL☞create语句
  7. Python全栈 MongoDB 数据库(数据的查找)
  8. (原)UnrealObj篇 : 反射获取Struct类型
  9. 配置SSH无密钥登陆(三)
  10. 第一课:SVN代码管理