鏈接: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-11 (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; }