给定数组w,q次查询,求w[ql]^ ( w[ql + 1] ^ ( ... w[qr - 1] ^ (w[qr]) ) ) % m
扩展欧拉定理 (a,m) != 1时,
if(b >= phi(m)) a^b % m = a ^ (b % phi(m) + phi(m) ) % m
if(b < phi(m)) a^b % m = a ^ b % m(快速幂)
1.快速幂和递归时要时刻注意指数和phi(m)的大小关系
ll qk_pow(ll a,ll b,ll p)
{
ll ans = 1;
a = a >= p ? a % p + p : a;
while (b) {
if(b & 1) ans = ans * a >= p ? ans * a % p + p : ans * a % p;
b >>= 1;
a = a * a >= p ? a * a % p + p : a * a % p;
}
return ans;
}
2.
ll f(int ql,int qr,int pos)
{
int m = v[pos];
if(m == 1) return 1;
if(ql == qr) return w[ql] < m ? w[