30分求助
  • 板块P1358 扑克牌
  • 楼主XBHXXX
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/12 17:15
  • 上次更新2023/11/2 14:17:42
查看原帖
30分求助
756145
XBHXXX楼主2023/10/12 17:15
#include<bits/stdc++.h>
using namespace std;
long long m,n,q,s=1,s1=1,s2=1,s3=1;
long long a[1000000],p[1000000],dp[1000000];
void C(int x,int y,int z){
	s=1;
	s1=1;
	s2=1;
	for(int i=1;i<=y;i++){
		s=s*i;
	}
	for(int i=1;i<=y-x;i++){
		s1*=i;
	}
	for(int i=1;i<=x;i++){
		s2*=i;
	}
	p[z]=s/s1/s2;
}
int main(){
	cin>>n>>m;
	q=n;
	if(m==1){
		cin>>a[1];
		C(a[1],n,1);
		cout<<p[1];
		return 0;
	}
	for(int i=1;i<=m;i++){
		cin>>a[i];	
		C(a[i],q,i);
		q=q-a[i];
	}
	for(int i=1;i<=m;i++){
		s3*=p[i];
	//	cout<<p[i]<<" ";
	}
	cout<<s3%10007;
	return 0;
} 
2023/10/12 17:15
加载中...