P4071 [SDOI2016]排列计数 题解
分析:
线性求逆元:https://blog.csdn.net/qq_34564984/article/details/52292502
代码:
#include<cstdio>
using namespace std;
const long long mod=1000000007;
long long ni[1000005],cheng[1000005],dao[1000005],d[1000005];
int main()
{
d[0]=1;
d[1]=0;
d[2]=1;
for(long long i=3;i<=1000000;i++)
{
d[i]=((i-1)*(d[i-1]+d[i-2]))%mod;
}//错排递推公式!!!
ni[1]=1;//1的逆元为1
for(long long i=2;i<=1000000;i++)
{
ni[i]=(mod-mod/i)*ni[mod%i]%mod;
}//求出i的逆元(线性求逆元板子
cheng[0]=1;
for(long long i=1;i<=1000000;i++)
{
cheng[i]=(cheng[i-1]*i)%mod;
} //求出i的正常阶乘
dao[0]=1;
for(long long i=1;i<=1000000;i++)
{
dao[i]=(dao[i-1]*ni[i])%mod;
}
long long T;
scanf("%lld",&T);
while(T--)
{
long long n,m;
scanf("%lld%lld",&n,&m);
printf("%lld\n",(cheng[n]%mod*dao[m]%mod*dao[n-m]%mod*d[n-m]%mod)%mod);
}
return 0;
}
P4071 [SDOI2016]排列计数 题解的更多相关文章
- 洛谷 P4071 [SDOI2016]排列计数 题解
P4071 [SDOI2016]排列计数 题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳 ...
- 洛谷——P4071 [SDOI2016]排列计数(错排+组合数学)
P4071 [SDOI2016]排列计数 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列 ...
- 洛谷P4071 [SDOI2016] 排列计数 [组合数学]
题目传送门 排列计数 题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m ...
- P4071 [SDOI2016]排列计数
题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m 个数是稳定的 满足条 ...
- BZOJ4517 & 洛谷4071:[SDOI2016]排列计数——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4517 https://www.luogu.org/problemnew/show/P4071 求有 ...
- Luogu P4071 [SDOI2016]排列计数
晚上XZTdalao给我推荐了这道数论题.太棒了又可以A一道省选题了 其实这道题也就考一个错排公式+组合数+乘法逆元 我们来一步一步分析 错排公式 通俗的说就是把n个1~n的数排成一个序列A,并使得所 ...
- 洛谷 P4071 [SDOI2016]排列计数
洛谷 这是一道组合数学题. 对于一个长为n的序列,首先我们要选m个使之稳定\(C^{m}_{n}\). 且要保证剩下的序列不稳定,即错排\(D_{n-m}\). 所以答案就是:\[ANS=C^{m}_ ...
- 数学【洛谷P4071】 [SDOI2016]排列计数
P4071 [SDOI2016]排列计数 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列 ...
- BZOJ 4517: [Sdoi2016]排列计数 [容斥原理]
4517: [Sdoi2016]排列计数 题意:多组询问,n的全排列中恰好m个不是错排的有多少个 容斥原理强行推♂倒她 $恰好m个不是错排 $ \[ =\ \ge m个不是错排 - \ge m+1个不 ...
随机推荐
- create table as 复制not null
创建一张表包含非空约束,唯一约束和check约束 SQL> create table dept( 2 ename varchar2(20) constraint mep_ename_nn not ...
- Auto updater for my side loaded UWP apps
原文: Auto updater for my side loaded UWP apps As I described before, i have a few tasks to solve for ...
- linux输出信息调试信息重定向
最近在做一个android系统移植的项目,所使用的开发板com1是调试串口,就是说会有uboot和kernel的调试信息打印在com1上(ttySAC0).因为后期要使用ttySAC0作为上层应用通信 ...
- 关于Android应用内存泄露问题
在Java中内存泄漏是指某个(某些)对象已经不再被使用,应该被GC所回收的空间,但有一个对象持有这个对象的引用从而阻止这个对象被回收.比如我们通常会这样创建一个View, TextView tv = ...
- postgresql + JDBC 学习
Based on debian 9, postgresql 9.6 and Java 8, at Dec-24-2018 ======================================= ...
- UI设计师必收!同行总结可即刻上手的iOS规范参考
分享 <关于我> 分享 [中文纪录片]互联网时代 http://pan.baidu.com/s/1qWkJfcS 分享 <HTML开发MacOSAp ...
- OpenSSL所有版本的变化,从1.1开始架构有所变化,生成的lib名称也有所不同了,以及对Qt的影响
The complete explanation is that 1.0.x and 1.1.x do not have the same naming conventions for the gen ...
- MongoDB自学日记3——架构及HA
在对mongoDB的操作有了一定基础后,终于可以扯扯HA和架构这两个高大上的概念了.在这之前当然还得弄清楚mongoDB的Key feature:Sharding. 1. Sharding Shard ...
- modelform组件以及ChoiceField属性
一. Forms组件补充 1.__init__() 如果继承forms.Form的类中的每一个字段,或者大部分字段都做了相同的约束,可以将该约束放到__init__中编写 实例:每一个字段都需要添加f ...
- Java 函数传入参数后,究竟发生了什么?java函数传参数原理解析
JAVA函数在传入参数A时,会在函数作用周期内生成一个与参数相同类型的局部变量B. B与A指向同一块内存区域,并且具有相同的名字如param. 在函数内所有对param的操作都是对B的操作.对B进行赋 ...