题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=6265
题解说 用到 狄利克雷卷积 知识 : 狄利克雷卷积
题目求:
代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <algorithm>
#include <bits/stdc++.h>
const int INF = 0x3f3f3f3f;
const int inf = 0x3f3f3f3f;
const int MOD = 998244353;
const int mod = 998244353;
typedef long long ll;
const int MAX = 2e5+100;
inline ll qpow(ll x,ll n){ll res=1;for(;n;n>>=1){if(n&1)res=(res*x)%MOD;x=(x*x)%MOD;}return res;}
using namespace std;
const int maxn=200000+10;
int main()
{
int t;
cin>>t;
while(t--)
{
int m;
cin>>m;
ll ans = 1 ;
while(m--)
{
ll q,p;
cin>>p>>q;
ll temp = 1;
temp = (temp*p)%mod;
temp = (temp+ (p-1)*q)%mod;
temp = (temp * qpow(p,q-1)%mod)%mod;
ans = ( ans * temp )%mod;
}
cout<<ans%mod<<endl;
}
return 0;
}
1