浮点错误!!!在比赛的时候一直出现浮点错误!!o(╥﹏╥)o
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;
} 