样例全对,一交0分?
查看原帖
样例全对,一交0分?
490978
小超手123楼主2023/8/28 13:18
#include<bits/stdc++.h>
#define int long long
#define N 2000005
#define mod 1000000007
using namespace std;
int T, n;
int f[N], g[N], jc[N];
int Pow(int a, int n) {
    if(n == 0) return 1;
    if(n == 1) return a % mod;
    int x = Pow(a, n / 2);
    if(n % 2 == 0) return x * x % mod;
    return x * x % mod * a % mod;
}
int inv(int x){
    return Pow(x % mod, mod - 2);
}
int C(int n, int m) {
    return jc[n] * inv(jc[m]) % mod * inv(jc[n - m]) % mod;
} 
signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    jc[0] = 1;
    for(int i = 1; i <= 1000000; i++) jc[i] = (jc[i - 1] * i) % mod;
    f[1] = 0;
    g[1] = 1;
    for(int i = 2; i <= 1000000; i++) {
        f[i] = (i - 1) * g[i - 1] % mod;
        g[i] = ((i - 1) * g[i - 1] % mod + f[i - 1]) % mod;
	}
	cin >> T;
	while(T--) {
	    int n, m;
	    cin >> n >> m;
	    cout << C(n, m) * f[n - m] % mod << endl;
	}
    return 0;
}
2023/8/28 13:18
加载中...