P4071-[SDOI2016]排列计数【组合计数,错排】
正题
题目链接:https://www.luogu.com.cn/problem/P4071
题目大意
每次询问n,mn,mn,m。求有多少个nnn的排列使得ai=ia_i=iai=i的数量恰好为mmm个。
解题思路
首先nnn个之中选择mmm个ai=ia_i=iai=i,选择的方案数为CnmC_{n}^mCnm。剩下的错排就好了
错排推导di=(i−1)(di−1+di−2)d_i=(i-1)(d_{i-1}+d_{i-2})di=(i−1)(di−1+di−2)
所以答案就是Cnm∗dn−mC_n^m*d_{n-m}Cnm∗dn−m
预处理即可。
codecodecode
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=1e6+10,XJQ=1e9+7;
ll T,n,m,d[N],fac[N];
ll power(ll x,ll b)
{ll ans=1;while(b){if(b&1) ans=ans*x%XJQ;x=x*x%XJQ;b>>=1;}return ans;
}
ll C(ll n,ll m)
{return fac[n]*power(fac[m]*fac[n-m]%XJQ,XJQ-2)%XJQ;}
int main()
{scanf("%lld",&T);d[0]=d[2]=fac[1]=fac[0]=1;fac[2]=2;for(ll i=3;i<=1000000;i++)fac[i]=fac[i-1]*i%XJQ,d[i]=(i-1)*(d[i-1]+d[i-2])%XJQ;while(T--){scanf("%lld%lld",&n,&m);printf("%lld\n",C(n,m)*d[n-m]%XJQ);}
}
P4071-[SDOI2016]排列计数【组合计数,错排】相关推荐
- 排列组合之错排问题总结
目测最近要刷刷关于排列组合的题目... 所以现在将遇到的那些熟悉却已经忘记的问题都总结一下.. 第一发: 错排以及错排公式 其实错排问题对于程序算法而言,就是递归问题.因为错排的理解其实就是相当于阶乘 ...
- 【BZOJ4517】排列计数,组合数+错排
传送门 题意就是数字1-n任意排列,要求有m个数,放在它们各自对应的位置上(就是1放在位置1上,2放在位置2上--),剩下n-m个数全部不在对应的位置上(比如3不在位置3上,4不在位置4上),求排列的 ...
- 竞赛图强连通分量大小幂和计数 - 组合计数 - 多项式
题目大意:求所有nnn个点带标号竞赛图的强连通分量大小的kkk次方之和的和,对998244353599824435359982443535模数取模.n≤105,k≤998244352n\le10^5, ...
- HDU:4535 吉哥系列故事——礼尚往来(数学:错排)
吉哥系列故事--礼尚往来 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Tot ...
- LeetCode-Python-634. 寻找数组的错位排列(数学 + 错排公式)
在组合数学中,如果一个排列中所有元素都不在原先的位置上,那么这个排列就被称为错位排列. 给定一个从 1 到 n 升序排列的数组,你可以计算出总共有多少个不同的错位排列吗? 由于答案可能非常大,你只需要 ...
- 杭电2068RPG的错排
RPG的错排 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- bzoj 4517: [Sdoi2016]排列计数(错排+组合数逆元)
4517: [Sdoi2016]排列计数 Time Limit: 60 Sec Memory Limit: 128 MB Submit: 1259 Solved: 766 [Submit][Sta ...
- [SDOI2016]排列计数 (错排数概念 + 递推公式【附带证明】)
辛勤二更 题目 题解 错排数概念 错排数递推公式及其证明 代码实现 这种题做的时候: 做完后:正常这就是生活,我们要学会习惯 题目 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n ...
- bzoj4517 [Sdoi2016]排列计数 组合数+错排
这个题描述的本身就很离散,所以就相当于选出m个位置,剩下的位置的错排 错排的公式也不是很难推,注意及时利用以前的结果就好了,实在不行根据印象打表找规律 设有n个数 ,n个位置,第一个数一定不能选第一 ...
最新文章
- github上删除一个仓库
- 程序员必备网站之一:No Design
- linux /etc/fstab 挂载列表 简介
- kubernetes资源控制与及ingress插件安装(容忍策略)
- IntelliJ IDEA 超全优化设置,效率杠杠的!
- BZOJ 1051 受欢迎的牛(Tarjan缩点)
- python是烂语言吗
- 商汤科技「工业视觉AI」研发介绍
- (完美解决)Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs
- nginx ngx_http_auth_basic_module(Basic Authentication)
- Android 解压zip文件
- 【转】15个超炫的HTML5效果
- python中的commands模块
- VBS脚本病毒原理分析与防范
- STL源码剖析(一)
- 从计算、建模到回测:因子挖掘的最佳实践
- 压紧力变化的平均值matlab,基于MATLAB遗传算法的汽车拉式离合器膜片弹簧结构参数优化设计...
- wso2 mysql,WSO2 DAS +具有MySQL的集群APIM
- Python Tkinter Text控件随输入自动拓展到尾行
- 最新年龄估计综述(Deep learning approach for facial age classification: a survey of the state of the art)
热门文章
- cgi备份还原和ghost有什么区别_手动GHOST还原重装系统详细教程
- python气象数据处理与绘图_Python气象数据处理与绘图:纬高图的另一种思路
- php获取域名方法,PHP实现获取域名的方法小结
- html文件上传添加额外参数,bootstrap-fileinput组件在上传时传递额外参数
- leetcode56. 合并区间
- html css图标怎么跟文字并排,html - FA图标和文字环绕的HTML / CSS问题 - SO中文参考 - www.soinside.com...
- ciclop读音,购机必备,15种 3D扫描 设备 优缺点汇总
- [JavaWeb]web相关概念回顾
- [Java基础]自定义注解之属性定义
- [Java基础]Stream流终结操作之forEachcount