2023河南萌新联赛第(三)场:郑州大学 F

2023河南萌新联赛第(三)场:郑州大学 F_第1张图片

把题中所给的式子进行展开,最终可以得到一个等比数列。运用等比数列求和公式即可。

相关知识点:欧拉降幂,逆元。

逆元的用处:因为求和公式需要去除分子,而大数除法去取模会丢失精度,所以可以采用求出分子在mod意义下的逆元,然后进行乘法运算即可。

欧拉降幂:因为文明需要求出等比数列的项数,而项数为2的1e18级别,对此我们在快速幂过程中必然会进行取模操作,而对于这种指数比较大的数,a^{b}%c!=a^{b\% c}%c。所以需要进行欧拉降幂。2023河南萌新联赛第(三)场:郑州大学 F_第2张图片 而我们一个质数p的欧拉函数值即为 p-1.

#include

using namespace std;
const int N=1e6+5;
typedef long long ll;
typedef pair pll;
typedef array p3;
ll mod=998244353;
const int maxv=4e6+5;

ll qmi(ll a,ll  b)
{
    ll res=1;
    while(b){
        if(b & 1) res=res*a%mod;
        b>>=1;
        a=(a%mod)*(a%mod) % mod;
    }
    return res%mod;
}

ll inv(ll x)
{
    return qmi(x,mod-2);
}



void solve()
{	

    ll n,x;
    cin>>n>>x;
    if(n==0){
        cout<<(1+x)%mod<>t;
	while(t--){
		//if(n==0) break;
		solve();
	}
	//system("pause");
	return 0;
}

 

你可能感兴趣的:(补题记录,算法)