在下面的代码中 cx 和 cy 是全局变量。
在两个 if 里面 fx 和 fy 两个数组会发生改变吗?
感觉应该是不会改变的,但是输出了一下好像不一样?
求大佬解答,谢谢。
int ask(int fx[],int fy[],int l,int r,int x,int y)
{
if(l>y||r<x||x>y)return 0;
int mid=(l+r)/2,sum=0;
if(x<=l&&r<=y)
{
for(int i=1;i<=ly;i++)
sum+=f[fy[i]].x;
for(int i=1;i<=lx;i++)
sum-=f[fx[i]].x;
return sum;
}
if(x<=mid)
{
for(int i=1;i<=ly;i++)
cy[i]=f[fy[i]].l;
for(int i=1;i<=lx;i++)
cx[i]=f[fx[i]].l;
sum+=ask(cx,cy,l,mid,x,y);
}
if(y>mid)
{
for(int i=1;i<=ly;i++)
cy[i]=f[fy[i]].r;
for(int i=1;i<=lx;i++)
cx[i]=f[fx[i]].r;
sum+=ask(cx,cy,mid+1,r,x,y);
}
return sum;
}