链接---点击打开链接
测试:
Code:
#include<cstdio>
#include<algorithm>
using namespace std;
const long long mod=1000000007;
long long exgcd(long long a,long long b,long long& x,long long& y)
{
if(b==0)
{
x=1;y=0;return a;
}
long long res;
res=exgcd(b,a%b,y,x);
y-=a/b*x;
return res;
}
long long ni(long long a )
{
long long x,y;
exgcd(a,mod,x,y);
while(x<0)
x+=mod;
return x%mod;
}
int main() {
int T;
long long n,m;
scanf("%d",&T);
while(T--) {
scanf("%I64d%I64d",&n,&m);
if(m>n) {
printf("%I64d\n",n%mod);
} else {
long long a=(m*(n+1))%mod;
long long b=ni(m+1);
printf("%I64d\n",(a*b)%mod);
}
}
}