B题就是一个简单的数学题嘛,啊啊啊啊啊啊啊啊啊啊,出现浮点错误,是什么鬼,求助大佬们,救救我,救救我。
#include<bits/stdc++.h> #define ll long long using namespace std; const int N=2e5+100; const ll mod=1e9+7; ll a[N]; inline ll Pow(ll a,ll b) { a=a%mod; ll res=1; while(b) { if(b&1) res=(res*a)%mod; a=(a*a)%mod; b>>=1; } return res%mod; } inline ll inv(ll a,ll mod) { return Pow(a,mod-2)%mod; } int main() { a[0]=a[1]=1; for(int i=2;i<=2e5+5;i++) a[i]=(a[i-1]*i)%mod; int t; scanf("%d",&t); while(t--) { ll n,m,k,q; scanf("%lld%lld%lld%lld",&n,&m,&k,&q); if(n<k) { puts("0"); continue; } ll mole=Pow(a[n]/a[n-k],q),deno=Pow(a[n+m]/a[(n+m)-k],q); printf("%lld\n",inv(deno/mole,mod)); } return 0; }
全部评论
(2) 回帖