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


全部评论
a[x]/a[y]要逆元
点赞 回复 分享
发布于 2022-04-03 21:04
可能是出现除0操作了
点赞 回复 分享
发布于 2022-04-03 20:54

相关推荐

01-01 23:23
复旦大学 Java
点赞 评论 收藏
分享
2025-12-19 19:02
西安交通大学 Java
程序员牛肉:双九,而且还是西交这种比较好的985九没必要再投日常了。你投中小厂,人家会觉得你学历这么顶还面试肯定是海投的,过了你也不去。所以不约你了。 直接准备暑期实习就好,现在你可以面试。但是目的不再是去日常实习了,而是熟悉面试节奏。 后续把精力放到八股,算法和AI知识上。抽空把自己这两个项目换了,怎么选项目可以看看我主页写的文章。 你学历不错的,不要焦虑
那些拿到大厂offer的...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务