修改区间每个点的值
并查集
//已经把所有操作读进来了
for (int i=1;i<=n+1;i++)
to[i] = i;
for (int i=m;i>=1;i--)
{
int l = L[i], r= R[i],v= V[i];//要把a[l]~a[r]全部赋值为v
int p=get(l);//找到从左端点开始下一个需要被赋值的位置
while (p<=r)
{
a[p] = v;
to[get(p)] = get(p+1);
p=get(p);
}
}

浙公网安备 33010602011771号