P1054 [NOIP2005 提高组] 等价表达式

发布时间 2023-10-04 14:42:57作者: Richard_H

P1054 [NOIP2005 提高组] 等价表达式

这个题在计算表达式时可能会出现高次方,比如在某一数据中就出现了 2^7^10 也就是 \(2^{70}\) 自然溢出会寄,所以要取模

自然溢出 \(80\)

ull quick_pow (ull x, ull p) 
{
	ull res = 1;
	while (p) 
	{
		if (p & 1) res *= x;
		p >>= 1;
		x *= x;
	}
	return res;
}

取模 \(100\) 分(此处 const int mod = 1e9+7

lol quick_pow (lol x, lol p) 
{
	lol res = 1;
	while (p) 
	{
		if (p & 1) res = x * res % mod;
		p >>= 1;
		x = x * x % mod;
	}
	return res;
}