标签:else space namespace i++ end int uil clu std
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int mod=1000000007;
LL PowMod(LL x,LL n) {
LL res=1;
while(n) {
if(n&1) {
res=res*x%mod;
}
x=x*x%mod;
n>>=1;
}
return res;
}
LL com(LL n,LL m){
if(n<m)return 0;
LL res=1;
for(int i=1;i<=m;i++){
res=res*i%mod;
}
res=PowMod(res,mod-2);
for(LL i=n;i>n-m;i--){
res=res*(i%mod)%mod;
}
return res;
}
LL f[10000005];
int main(){
LL n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>f[i];
}
LL ans=0;
for(int s=0;s<1<<n;s++){
LL sum=0;
for(int i=0;i<n;i++){
if(s>>i&1){
sum+=f[i]+1;
}
}
if(__builtin_parity(s)){
ans-=com(n+m-1-sum,n-1);
}else{
ans+=com(n+m-1-sum,n-1);
}
}
ans=(ans%mod+mod)%mod;
cout<<ans<<endl;
return 0;
}
标签:else space namespace i++ end int uil clu std
原文地址:https://www.cnblogs.com/-9-QAQ-6-/p/13032800.html