鏈接:https://www.nowcoder.com/acm/contest/80/B
來源:牛客網
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld
題目描述
在文某路學車中學高一新生軍訓中,Jxc正站在太陽下站着軍姿,對於這樣的酷熱的陽光,Jxc 表示非常不爽。
Jxc將天空看做一個n*n的矩陣,此時天上有m朵雲,這些雲會隨機分布在m個不同的位置,同時太陽會隨機出現在一個位置,Jxc想知道他被太陽曬到的概率是多少,由於他仍在站軍姿,所以這個有趣的問題就交給了你。考慮到精度問題,Jxc只需要知道這個概率在對998244353取模意義下的值。
Tips:一個分數p/q在模意義下的值即p*q-1在模意義下的值,Xp-1
1 (mod p)
輸入描述:
輸入只有一行,包含兩個整數n、m。n和m的意義見題面.
輸出描述:
第一行包含一個整數Ans,為答案
示例1
輸入
2 2
輸出
499122177
備注:
1 <= n, m <= 2000,m <=n^2

#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
long long quai(int n, int q){
long long ans = 1, jie = n;
while(q){
if(q & 1){
ans = (ans * jie) % mod;
}
jie = (jie * jie) % mod;
q = q >> 1;
}
return ans;
}
int main(){
long long n;
int m;
int b;
cin >> n >> m;
b = n * n - m;
long long x = quai(n * n, mod - 2);
// cout << x << endl;
cout << ((b % mod) * (x % mod)) % mod << endl;
return 0;
}
