[SDOI2016]排列计数

Description

求有多少种长度为 n 的序列 A,满足以下条件:
1 ~ n 这 n 个数在序列中各出现了一次
若第 i 个数 A[i] 的值为 i,则称 i 是稳定的。序列恰好有 m 个数是稳定的
满足条件的序列可能很多,序列数对 10^9+7 取模。

Input

第一行一个数 T,表示有 T 组数据。
接下来 T 行,每行两个整数 n、m。
T=500000,n≤1000000,m≤1000000

Output

输出 T 行,每行一个数,表示求出的序列数

Sample Input

5
1 0
1 1
5 2
100 50
10000 5000

Sample Output

0
1
20
578028887
60695423
组合+错排
$ans=C_{n}^{m}*D_n-m$
$D[n]=n!(1-\frac{1}{1!}+\frac{1}{2!}-.......(-1)^{n}\frac{1}{n!})$
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<cmath>
 6 using namespace std;
 7 typedef long long lol; 
 8 lol fac[1000001],inv[1000001],D[1000001];
 9 lol n,m,Mod=1e9+7;
10 int main()
11 {lol i,T;
12   fac[0]=1;
13   for (i=1;i<=1000000;i++)
14     fac[i]=fac[i-1]*i%Mod;
15   inv[1]=1;inv[0]=1;
16   for (i=2;i<=1000000;i++)
17     inv[i]=(Mod-Mod/i)*inv[Mod%i]%Mod;
18   for (i=2;i<=1000000;i++)
19     inv[i]=inv[i-1]*inv[i]%Mod;
20   D[0]=1;
21   for (i=1;i<=1000000;i++)
22     if (i%2==0)
23       D[i]=(D[i-1]+inv[i])%Mod;
24     else D[i]=(D[i-1]-inv[i]+Mod)%Mod;
25   cin>>T;
26   while (T--)
27     {
28       scanf("%lld%lld",&n,&m);
29       printf("%lld\n",D[n-m]*fac[n]%Mod*inv[m]%Mod%Mod);
30     }
31 }

 

转载于:https://www.cnblogs.com/Y-E-T-I/p/8457046.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

听说有人不了解柔性数组

1 引言 定长数组包在平时的开发中&#xff0c;缓冲区数据收发时&#xff0c;如果采用缓冲区定长包&#xff0c;假定大小是 1k&#xff0c;MAX_LENGTH 为 1024。结构体如下&#xff1a;// 定长缓冲区 struct max_buffer {int len;char data[MAX_LENGTH]; };数据结构的大小 &…

STM32启动文件——startup_stm32f10x_hd.s

STM32启动文件——startup_stm32f10x_hd.s 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、启动文件的作用 &#xff08;关于启动代码的作用&#xff0c;前面已经提到过了&#xff0c;这里再啰嗦一下&#xff09; &#xff08;1&#xff09;初始化…

Transformer模型拆解分析

资源来自&#xff1a;DataWhale 学习资料 最近看了DataWhale 的Transformer图解&#xff0c;突然对Transformer的结构图有了更加清晰的理解&#xff0c;特此记录。 1、大框架 Transformer是由6个encoder和6个decoder组成&#xff0c;模型的具体实现是model变量里边&#xff0…

设计模式学习笔记六:.NET反射工厂

1&#xff0e; 简述 通过前面的学习&#xff0c;我们以传统的方式实现了简单工厂&#xff0c;工厂方法和抽象工厂&#xff0c;但是有些场合下如此处理&#xff0c;代码会变得冗余并且难以维护。假设我们要创建交通工具。可以是汽车&#xff0c;火车&#xff0c;轮船等&#xff…

在unity 中,使用http请求,下载文件到可读可写路径

在这里我用了一个线程池&#xff0c;线程池参数接收一个带有object参数的&#xff0c;无返回值的委托 &#xff0c;下载用到的核心代码&#xff0c;网上拷贝的&#xff0c;他的核心就是发起一个web请求&#xff0c;然后得到请求的响应&#xff0c;读取响应的流 剩下的都是常见的…

在tinyalsa上抓取音频

我们经常会遇到这样的问题&#xff0c;应用读取到的音频有问题&#xff0c;需要在tinyalsa里面读取音频来确认是底层音频有问题&#xff0c;还是应用处理之后存在的问题。所以&#xff0c;这个patch就出现了代码的逻辑很简单&#xff0c;主要是在pcm_read的时候&#xff0c;同时…

STM32——GPIO(1)

STM32——GPIO 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 【对单片机的操作就是控制IO口】 一、GPIO&#xff08;通用输入输出口&#xff09; 1、选定需要的引脚&#xff08;对应哪一个IO口&#xff09;&#xff1b; 2、配置需要的功能&#xf…

数据库实操——pandas写入数据库数据

1、Mysql &#xff08;1&#xff09;插入数据 因为pymysql不识别除%s之外的其他字符&#xff0c;例如%d&#xff0c;%f&#xff0c;因此&#xff0c;将sql语句的values全部设置为%s def insertdata(data,table_name,connect):c_name str(data.columns.tolist()).replace(&q…

【opencv学习笔记八】创建TrackBar轨迹条

createTrackbar这个函数我们以后会经常用到&#xff0c;它创建一个可以调整数值的轨迹条&#xff0c;并将轨迹条附加到指定的窗口上&#xff0c;使用起来很方便。首先大家要记住&#xff0c;它往往会和一个回调函数配合起来使用。先看下他的函数原型&#xff1a; int createTra…

父母悄悄给自己买房,我很生气,要怎么调整心态?

——问题我是独生子&#xff0c;今年满24岁刚上研一&#xff08;普通211&#xff09;。家庭四川小城市&#xff0c;情况一般&#xff0c;父母二人体制内月薪总计一万元以内&#xff0c;家里积蓄20W-30W&#xff0c;公积金情况不清楚。从小母子关系比较僵硬&#xff0c;母亲小学…

STM32——GPIO(2)

STM32——GPIO 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 /* GPIO_InitTypeDef结构体 */ typedef enum {GPIO_Speed_10MHz 1, //枚举常量&#xff0c;值为 1&#xff0c;代表输出速率最高为 10MHzGPIO_Speed_2MHz, //对不赋值的枚举变量&a…

语音处理入门——语音的声学处理

语音的声学处理通常称为特征提取或者信号分析&#xff0c;特征是表示语音信号的一个时间片的矢量。常见的特征类型有LPC&#xff08;线性预测编码&#xff09;特征和PLP&#xff08;感知线性预测编码&#xff09;&#xff0c;该特征称为声谱特征&#xff0c;使用形成波形的不同…

BootStrap 用法

1 下载bootstrap组件 2 在jsp页面中加入bootstrap <link rel"stylesheet" type"text/css" href"css/bootstrap.min.css "> <script type"text/javascript" srcjs/bootstrap.min.js></script> <script type&qu…

正则表达式基础知识

一个正则表达式就是由普通字符&#xff08;例如字符 a 到 z&#xff09;以及特殊字符&#xff08;称为元字符&#xff09;组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板&#xff0c;将某个字符模式与所搜索的字符串进行匹配。如…

基础呀基础,用二极管防止反接,你学会了吗?

使用新的电源&#xff0c;第一次给设备供电时&#xff0c;要特别注意电源的正负极性标注。比如电源适配器&#xff0c;铭牌上面有标注插头的极性。这个符号说明插头的里面是正极&#xff0c;外面是负极&#xff0c;即“内正外负”。但是也有反过来的&#xff0c;下面这款是“内…

李宏毅的可解释模型——三个任务

1、问题 观看了李宏毅老师的机器学习进化课程之可解释的机器学习&#xff0c;课程中对主要是针对黑盒模型进行白盒模型转化的技巧和方法进行了简单介绍&#xff0c;详细细节可以参考《Interpretable Machine Learning》。像一些线性模型、树形模型是可解释的ML model&#xff…

柔性数组和环形队列之间的故事

之前的文章&#xff0c;讲解了柔性数组&#xff0c;有很多人留言&#xff0c;提到一些问题。刚好&#xff0c;之前发关于环形队列的文章有些问题&#xff0c;这次刚好拿出来一起说一下&#xff0c;并用柔性数组实现一个环形队列。柔性数组的上一篇文章环形队列C语言实现文章1、…

NodeJs实现下载Excel文件

nodejs作为一门新的语言&#xff0c;报表功能也不是十分完善。 (1).js-xlsx : 目前 Github 上 star 数量最多的处理 Excel 的库&#xff0c;支持解析多种格式表格XLSX / XLSM / XLSB / XLS / CSV&#xff0c;解析采用纯js实现&#xff0c;写入需要依赖nodejs或者FileSaver .js实…

晚上不睡觉,搞的一个例子《JS实现动画》

照着例子做了一个程序&#xff0c;感觉很爽点击查看 转载于:https://www.cnblogs.com/guanggan123/archive/2008/07/10/1240322.html

STM32——时钟系统

STM32——时钟系统 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、时钟树 普通的MCU&#xff0c;一般只要配置好GPIO 的寄存器&#xff0c;就可以使用了。STM32为了实现低功耗&#xff0c;设计了非常复杂的时钟系统&#xff0c;必须开启外设时钟才…