1 条题解

  • 0
    @ 2024-11-27 14:00:18

    此题与象棋1类似仅需把1中的2换成k即可。

    #include <bits/stdc++.h>
    using namespace std;
    
    using i64 = long long;
    
    i64 power(i64 a, i64 n, i64 p)
    {
    	i64 ans = 1;
    	while (n)
    	{
    		if (n & 1)  (ans *= a) %= p;
    		(a *= a) %= p;
    		n >>= 1;
    	}
    	return ans;
    }
    
    i64 inv(i64 x)
    {
    	static const i64 mod = 998244353;
    	return power(x, mod - 2, mod);
    }
    
    void solve()
    {
    	static const i64 mod = 998244353;
    	i64 a, b, k;
    	cin >> a >> b >> k;
    	i64 p = (a % mod) * inv(b % mod) % mod;
    	i64 y = 2 * p - 1;
    	i64 ans = k * inv(y % mod);
    	cout << ans % mod << "\n";
    }
    
    int main()
    {
    	int T = 1; cin >> T;
    	while (T--) solve();	
    	return 0;
    }
    
    
    • 1

    信息

    ID
    253
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    35
    已通过
    10
    上传者