我想在 C++ 中编写段树代码并通过递归编写代码查询操作,但它很慢并且给出了 TLE。因此,有人可以通过迭代建议和解释以下代码,这将是一个很大的帮助。提前致谢。
以下代码在一个范围内计算 gcd
int getgcd(vector<int> T, int ss,int se, int L, int R, int index)
{
if (L <= ss && R >= se)
return T[index];
if (se < L || ss > R)
return 0;
int mid = ((ss+se)>>1);
return __gcd(getgcd(T, ss, mid, L, R, index<<1),getgcd(T, mid+1, se, L, R, (index<<1)+1));
}
这里 ,
T段树
ss -segment 开始
se段结束
index - 段树的当前节点
L - 查询下界
R - 上界