import java.io.*;
class Main{
static BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
static int N = 100010, p = (int) 1e9 + 7;
static int[] fact = new int[N], infact = new int[N];
public static int qmi(int a, int k, int p){
long res = 1;
while( k > 0){
if( (k & 1) != 0 ) res = res * a % p;
a =(int) ((long) a * a % p);
k >>= 1;
}
return (int) res;
}
public static void main(String[] args) throws Exception{
int t = Integer.valueOf(read.readLine());
fact[0] = infact[0] = 1;
for(int i = 1; i < N; i++){
fact[i] =(int) ((long)fact[i - 1] * i % p);
infact[i] = (int) ((long) infact[i - 1] * qmi(i, p - 2, p ) % p);
}
while(t -- > 0){
String[] ss = read.readLine().split(" ");
int a = Integer.valueOf(ss[0]);
int b = Integer.valueOf(ss[1]);
int res = (int) ((long) fact[a] * infact[a - b] % p * infact[b] % p);
System.out.println(res);
}
}
}
快速冥 ,笑死了🤣
作者说的没错啊,数论确实是让人快速冥
哈哈哈哈说得好
快速冥哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
你是不是把杨幂叫杨冥🤣
hh
不过作者这么打错也无意中说明了数学知识部分容易让人快速冥…
《快 速 冥》
写的真好 点个赞
快速冥
快速冥 就离谱
逆元也可以合并拆分项吗 (a! * a)-1 = ( a! )-1 * ( a )-1
当然是可以的
快速冥秀啊
wow!写的很清楚!!!
666
什么LINK-5冥神
赞,用什么做的笔记
好一个“快 速 冥”,
%%%%%%%%%%%%%%%%%%%%%55
问大佬们一个问题啊(int)((long)代码)是什么作用啊,比如逆元函数里的a = (int)((long)a * a % p);变成a = a * a % p来写的话所有解都变成了0
先转换成longlong,不然a*a会爆int,数据会丢失
hhh快速冥
要被快速冥送走了
《快速冥》笑死我了,开始狂刷数论,赞个hh