竞赛讨论区 > 浮点错误!!!在比赛的时候一直出现浮点错误!!o(╥﹏╥)o
头像
牛客387909056号
发布于 2022-04-03 18:10
+ 关注

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


全部评论

(2) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐