欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

@HDU 6265 @ 2017 CCPC 杭州 B: Master of Phi (数论)

程序员文章站 2022-03-08 07:53:21
...

题目链接: 

http://acm.hdu.edu.cn/showproblem.php?pid=6265


题解说 用到 狄利克雷卷积 知识  : 狄利克雷卷积

题目求:


@HDU 6265 @ 2017 CCPC 杭州 B: Master of Phi (数论)


代码:

#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