分析:

线性求逆元: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]排列计数 题解的更多相关文章

  1. 洛谷 P4071 [SDOI2016]排列计数 题解

    P4071 [SDOI2016]排列计数 题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳 ...

  2. 洛谷——P4071 [SDOI2016]排列计数(错排+组合数学)

    P4071 [SDOI2016]排列计数 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列 ...

  3. 洛谷P4071 [SDOI2016] 排列计数 [组合数学]

    题目传送门 排列计数 题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m ...

  4. P4071 [SDOI2016]排列计数

    题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m 个数是稳定的 满足条 ...

  5. BZOJ4517 & 洛谷4071:[SDOI2016]排列计数——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4517 https://www.luogu.org/problemnew/show/P4071 求有 ...

  6. Luogu P4071 [SDOI2016]排列计数

    晚上XZTdalao给我推荐了这道数论题.太棒了又可以A一道省选题了 其实这道题也就考一个错排公式+组合数+乘法逆元 我们来一步一步分析 错排公式 通俗的说就是把n个1~n的数排成一个序列A,并使得所 ...

  7. 洛谷 P4071 [SDOI2016]排列计数

    洛谷 这是一道组合数学题. 对于一个长为n的序列,首先我们要选m个使之稳定\(C^{m}_{n}\). 且要保证剩下的序列不稳定,即错排\(D_{n-m}\). 所以答案就是:\[ANS=C^{m}_ ...

  8. 数学【洛谷P4071】 [SDOI2016]排列计数

    P4071 [SDOI2016]排列计数 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列 ...

  9. BZOJ 4517: [Sdoi2016]排列计数 [容斥原理]

    4517: [Sdoi2016]排列计数 题意:多组询问,n的全排列中恰好m个不是错排的有多少个 容斥原理强行推♂倒她 $恰好m个不是错排 $ \[ =\ \ge m个不是错排 - \ge m+1个不 ...

随机推荐

  1. oracle解析

    Oracle数据库中的CURSOR分为两种类型:Shared Cursor 和 Session Cursor 1,Shared Cursor Oracle里的第一种类型的Cursor就是Shared ...

  2. PRML Chapter2

    参考文献:PRML2 参数方法和非参数方法 机器学习上的方法分为参数方法(根据先验知识假定模型服从某种分布,然后利用训练集估计出模型参数,也就弄清楚了整个模型,例如感知器)和非参数方法(基于记忆训练集 ...

  3. 国家气象局 天气预报 城市代码(JSON格式)

    如题 { "城市代码": [ { "省": "北京", "市": [ { "市名": "北 ...

  4. UBUNTU 16.04 + CUDA8.0 + CUDNN6.0 + OPENCV3.2 + MKL +CAFFE + tensorflow

    首先说一下自己机子的配置 CPU:Intel(R) Core(TM) i5-5600 CUP @3.20GHz *4 GPU : GTX 1060 OS : 64bit Ubuntu16.04LTS ...

  5. 通过内核对象在服务程序和桌面程序之间通信的小问题 good

    关于在通过 事件对象 在服务程序和普通桌面应用程序相互之间通信的问题,分类情况进行讨论:1.普通桌面应用程序中创建事件,服务程序中打开事件 XP的情况普通桌面应用程序中创建: m_hEvent = : ...

  6. Postman调试中文出现乱码问题

    最近在通过postman调试接口的时候,发现post的数据在中文的时候,传输到后台变成了问号(???),经过网上的资料与验证,找到了解决方案:在请求头中添加charset=UTF-8的属性,后续在进行 ...

  7. PHP网站开发方案

    一. 开发成员 a)项目主管 b)页面美工c)页面开发 d)服务端程序开发e)系统与数据管理f)测试与版本控制 二. 网站组开发简明流程 三. 开发工具与环境 a) 服务器配置i. WEB服务器: F ...

  8. 使用Gson封装和解析JSON

    案例:判断用户名是否存在 在jsp页面使用ajax $("#username").change(function(){ var username = $(this).val(); ...

  9. docker系列(五):网络通信

    1 引言 之前的几篇docker系列博客说的都是单个容器或者镜像的操作.但容器,作为一种简化的操作系统,又怎能不与机器或者容器相互协同工作呢,这就需要用到容器的网络功能.docker中提供了多种不同的 ...

  10. spring源码深度解析— IOC 之 开启 bean 的加载

    概述 前面我们已经分析了spring对于xml配置文件的解析,将分析的信息组装成 BeanDefinition,并将其保存注册到相应的 BeanDefinitionRegistry 中.至此,Spri ...