代码求调
  • 板块学术版
  • 楼主ksyksyksy130128
  • 当前回复3
  • 已保存回复3
  • 发布时间2025/1/19 19:26
  • 上次更新2025/1/19 22:01:48
查看原帖
代码求调
876374
ksyksyksy130128楼主2025/1/19 19:26

小明共有n个相同的糖果,他想把这n个糖果分给m个同学,但每名同学对糖果个数的需求不一样,第i名同学需求要大于Ci颗糖果(也就是说分给这名同学的糖果数必须大于Ci)。

问满足要求分配方案共有多少种?

由于结果可能很大,你只需要输出模1000000007的值。

输入格式

第一行两个整数n, m

后面有m行,每行一个整数Ci

输出格式

一个整数

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1000000007;
ll ans,n,m,x,inv[1000006];
ll ans1=1;
ll jc(int n){
	ll ans=1;
	for(ll i=2;i<=n;i++){
		ans*=i%mod;
	}
} 
int main(){
	cin>>n>>m;
	ans=n;
	inv[1]=1;
	for(ll i=1;i<=m;i++){
		cin>>x;
		ans-=x;
	}
	for(ll i=2;i<=1000000;i++){
		inv[i]=(mod-mod/i)*inv[mod%i]%mod;
	}
	ans1=jc(ans)*inv[jc(m)]*inv[jc(ans-m)];
	cout<<ans1%mod;
	return 0;
}
2025/1/19 19:26
加载中...