80分求条
查看原帖
80分求条
1312482
Delightedppp楼主2025/8/1 20:13
#include <bits/stdc++.h>
using namespace std ; 
#define int long long 
const int N = 1e4 + 11 , mod = 10007 ;
int n , m , a[N] , sum[N] , le[N] , ans = 1 ;
int fast ( int x ) {
	int p = mod - 2 , sum = 1;
	while (p) {
		if (p & 1) {
			sum *= x ;
			sum %= mod ;
		} 
		p >>= 1 ;
		x *= x ;
		x %= mod ;
	}
	return sum ;
}
signed main ( ) {
	cin >> n >> m ;
	sum [0] = 1 ;
	for (int i = 1 ; i <= m ; i ++ )
		cin >> a[i] ;
	for (int i = 1 ; i <= n ; i ++) {
		sum[i] = sum[i - 1] * i ;
		sum[i] %= mod ;
	}
	for (int i = 1 ; i <= n ; i ++) 
		le[i] = fast (i) ;
	for (int i = 2 ; i <= n ; i ++) {
		le[i] = le[i - 1] * fast (i) ;	
		le[i] %= mod ;
	}
	for (int i = 1 ; i <= m ; i ++ ) {
		ans *= sum[n] * le[ a[i] ] * le[n - a[i] ] ;
		ans %= mod ;
		n -= a[i] ;
	}
	cout << ans ;
	return 0 ;
}	 
2025/8/1 20:13
加载中...