添加链接描述
从n个数选m个数 不考虑顺序,每个数可以选任意次的方案数为C(m+n-1,m)
#include<bits/stdc++.h>
using namespace std;
const int N=2e7+9,mod=1e9+7;
#define int long long
int q_pow(int a,int b){int ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod;b>>=1;}return ans;
}
int fac[N],infac[N];
void init(){for(int i=1;i<N;i++){fac[i]=i*fac[i-1]%mod;}
}
int C(int a,int b){int ans=fac[a];ans=ans*q_pow(fac[b],mod-2)%mod*q_pow(fac[a-b],mod-2);return ans%mod;
}
signed main(){ fac[0] =1;init(); int n,m;cin>>n>>m;cout<<C(n+m-1,m);return 0;
}
本文发布于:2024-01-29 14:58:14,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170651149616092.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |