博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 888D Almost Identity Permutations:错排公式
阅读量:5107 次
发布时间:2019-06-13

本文共 703 字,大约阅读时间需要 2 分钟。

题目链接:

题意:

  给定n,k,问你有多少种1到n的排列,满足至少有n-k个a[i] == i。

  (4 <= n <= 1000, 1 <= k <= 4)

 

题解:

  转换题意:

    给定n,k,问你有多少种1到n的排列,满足最多有k个a[i] != i。

  D(i)表示1到i的排列的错排方案数。

  那么ans = ∑(C(n,i) * D(i)) + 1,其中i∈[2,k]。

  ps:

    错排递推式:D(n) = (n-1) * (D(i-1)+D(i-2))

    错排通项式:D(n) = n! * ∑(((-1)^i) / i!),其中i∈[2,n]

 

AC Code:

1 #include 
2 #include
3 #include
4 5 using namespace std; 6 7 long long n,k; 8 long long ans=1; 9 10 int main()11 {12 cin>>n>>k;13 if(k>=2) ans+=n*(n-1)/2;14 if(k>=3) ans+=2*n*(n-1)*(n-2)/6;15 if(k>=4) ans+=9*n*(n-1)*(n-2)*(n-3)/24;16 cout<
<

 

转载于:https://www.cnblogs.com/Leohh/p/8469110.html

你可能感兴趣的文章
php 整数转日期,php数字转时间的方法
查看>>
mle matlab,MLE的Matlab程序
查看>>
php 视频资源互动共享系统,PHP教与学资源网站设计
查看>>
php buffer 切割,PHP 输出buffer控制 | 学步园
查看>>
php 名称搜索排序,php – 按名称弹性搜索排序
查看>>
java pdf动态生成,从Java应用程序动态生成PDF文件
查看>>
红细胞识别matlab,图像处理—红细胞计数(Matlab).doc
查看>>
php让from背景变成半透明,php – imagecreatefrompng()使一个黑色的背景,而不是透明?...
查看>>
oracle函数基础知识,ORACLE 基础知识以及基本函数
查看>>
oracle9i安装后,Oracle9i安装过程说明
查看>>
oracle+609,Fatal NI Connect 12560' And 'ORA-609 解决方法
查看>>
oracle会话比进程高,oracle数据库CPU特别高的解决方法详解
查看>>
linux查询进程ps grep,Linux下通过grep查找指定的进程是否存在
查看>>
linux终端文件夹颜色,linux 修改文件夹颜色 终端颜色
查看>>
linux eclipse进程,Linux环境中用Eclipse搭建C++程序开发平台
查看>>
linux启动redis指定端口,linux配置redis三种启动方式
查看>>
linux在当前目录使用test,为什么所有的文件都显示不存在?,Linux 常用命令
查看>>
linux下Qt程序deb打包,Ubuntu1604打包QT的程序
查看>>
分析linux内核 内存管理,Linux内核代码分析之内存管理.doc
查看>>
linux mint开发环境,linux mint 开发环境配置
查看>>