《求助》#6 #10RE,递推杨辉
查看原帖
《求助》#6 #10RE,递推杨辉
71476
晕血羔羊楼主2021/10/19 14:38
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>

#define re register
#define maxx 100005

using namespace std;

//priority_queue<int > q;
//vector<int > g[maxx];
inline int read(){
	int x=0;int f=1;char c=getchar();
	while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();
	}
	while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();
	}
return x*f;
}

int n,m,t;
int a;
int f[10005][105];
long long ans=1;
int main()
{

	n=read();m=read();
	t=0;	
	
	for(re int i=1;i<=n;i++) f[i][0]=f[i][i]=1;
	
	for(re int i=2;i<=n;i++){
		for(re int j=1;j<=100;j++){
			f[i][j]=(f[i-1][j]+f[i-1][j-1])%10007;
		}
	}
	
	for(re int i=1;i<=m;i++) {
		a=read();	
		ans=(ans*f[n][a])%10007;
		n-=a;
	}
	printf("%lld",ans);
return 0;
}
2021/10/19 14:38
加载中...