样例没过,求调
查看原帖
样例没过,求调
488395
Proxima_Centauri楼主2023/5/27 10:13

样例1输出3,样例2输出为负

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int a[100010], b[100010], p[100010], _1_p[100010];
const int mod = 998244353;
long long niyuan(int x)
{
	long long ans = 1, tt = mod - 2;
	while (tt)
	{
		if (tt & 1) ans = 1ll * ans * x % mod;
		x = 1ll * x * x % mod;
		tt >>= 1;
	}
	return ans;
}
int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i] >> b[i];
		p[i] = 1ll * a[i] * niyuan(b[i]) % mod;
		_1_p[i] = 1ll * (b[i] - a[i]) * niyuan(b[i]) % mod;
	}
	int A = 1,  C = 0, temp = 1;
	for (int i = 1; i <= n; i++) 
	{
		C = (C + temp * p[i] % mod) % mod;
		temp = temp * _1_p[i] % mod;
		A = (A + temp) % mod;
	}
	cout << 1ll * A * niyuan((1 - C + mod) % mod) % mod << endl;
	return 0;
}
2023/5/27 10:13
加载中...