首页 > 其他分享 >P4071 [SDOI2016] 排列计数

P4071 [SDOI2016] 排列计数

时间:2023-09-17 16:55:09浏览次数:54  
标签:int res 1000005 long 计数 SDOI2016 include P4071 mod

LLink

显然的,答案就是\(C_n^m*D_{n-m}\)

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<ctime>
#include<bitset>
using namespace std;
int t;
long long n,m;
const long long mod=1e9+7;
long long f[1000005];
long long inv[1000005];
long long d[1000005];
long long qm(long long a,long long b){
	long long res=1;
	while(b>0){
		if(b&1) res=(a*res)%mod;
		a*=a;
		a%=mod;
		b>>=1;
	}
	return res;
}
int main(){
	scanf("%d",&t);
	f[0]=1;
	inv[0]=1;
	for(long long i=1;i<=1000002;++i){
		f[i]=(f[i-1]*i)%mod;
		inv[i]=qm(f[i],mod-2);
	}
	d[1]=0;
	d[2]=1;
	d[3]=2;
	for(long long i=4;i<=1000002;++i){
		d[i]=(i-1)*(d[i-1]+d[i-2])%mod;
	}
	while(t--){
		scanf("%lld%lld",&n,&m);
		if(m==0) {
			printf("%lld\n",(d[n]+mod)%mod);
		}else if(m!=n){
			printf("%lld\n",(f[n]*inv[m]%mod*inv[n-m]%mod*d[n-m]%mod+mod)%mod);
		}else{
			cout<<1<<endl;
		}
	}
	return 0;
}

标签:int,res,1000005,long,计数,SDOI2016,include,P4071,mod
From: https://www.cnblogs.com/For-Miku/p/17709162.html

相关文章

  • 41-元组-元素访问-计数方法_切片操作_成员资格判断_zip()
            ......
  • 设计数据库结构
            ......
  • 用户登录失败时进行计数和锁定
    /etc/pam.d/sshd增加: authrequiredpam_tally2.soonerr=faildeny=5unlock_time=300even_deny_rootroot_unlock_time=300authrequired:这指示PAM系统在用户进行身份验证时要求执行此模块。如果验证失败,将拒绝用户访问。pam_tally2.so:这是实际执行计数和锁定功能......
  • HBase学习4(导入数据、计数器、scan扫描、过滤器)
    1.导入数据集先上传文件到指定目录,后执行下面的语句hbaseshell/export/software/ORDER_INFO.txt 2.查看表中有多少条数据(计数器)语法:count‘表名’缺点:比较慢,当数据量更大的时候可以使用HBase中提供的MapReduce程序来进行计数统计。要启动好,需要注意,以下三步不是在hb......
  • P4071 [SDOI2016] 排列计数
    原题\[\huge{\color{#ff0000}{\text{被XJK搏杀了,我tcl}}}\]我们先从\(n\)个数里选\(m\)个数钦定这些数满足\(a_i=i\),因此原问题就等于让\(n-m\)个数的排列满足\(a_i\neqi\)的排列方案数先说一个错误的做法:设\(dp_i\)表示长为\(i\)的排列的方案数。我们每次枚举一个大小为\(......
  • 【Python新手参考】带界面的英文单词计数器
    事情经过昨天晚上用电脑写作文,由于不放心Word的计词器,一时又找不到合适的工具,于是索性自己写了一个。那么为什么要带界面呢?原因是我曾经尝试过input(),但是它不能处理文本中的换行,所以只能将tkinter.Text作为输入框。写完之后我发现这个东西似乎还有点参考价值,故post出来。包含......
  • #9 计数什么时候滚粗oi
    BindianSignalizing题面断环为链,令\(l_i\)表示\(i\)左边第一个高于\(i\)的,\(r_i\)表示\(i\)右边第一个高于\(i\)的,\(cnt_i\)表示区间\([l_i,r_i]\)中高度等于\(i\)的,因为为了防重,所以只记录右边高度等于\(i\)的。当\(l_i\)和\(r_i\)对应的位置时还有\([......
  • 在flink-1.17中测试执行流处理版本的单词计数程序时,出现"Exception in thread "Thread
    场景描述采用单作业模式提交作业后发现报错了 报错内容Exceptioninthread“Thread-5”java.lang.IllegalStateException:Tryingtoaccessclosedclassloader.Pleasecheckifyoustoreclassloadersdirectlyorindirectlyinstaticfields.Ifthestacktrace......
  • 旋转编码器中断方式实现计数
    旋转编码器正转两路信号相位关系旋转编码器反转两路信号相位关系↓↓↓↓利用中断方式实现编码器计数↓↓↓↓↓int32_tEncoderNum=0;/*初始化PA0,PA1,PA4,打开EXTI中断*/voidEncoder_GPIO_Init(void){/*PA0=S1,PA1=S2,PA4=KEY*/__HAL_RCC_GPIOA_CLK_ENABLE();......
  • Solution Set - 组合计数
    CF40ENumberTableLink&Submission.显然\(n,m\)奇偶性不同时无解。奇偶性相同时,假设有一行全为空,剩下每行至少一个有空,则除这些位置外没有限制的位置都可以随便填,这些位置一定有唯一可行方案。又因为\(k\lt\max(n,m)\),所以一定有一行或一列为空。假设是一行,如果有其它行全......