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;
}
标签:NOIP2005,res,lol,P1054,ull,表达式,mod
From: https://www.cnblogs.com/Richard-H/p/17742247.html