修改区间每个点的值

并查集

//已经把所有操作读进来了

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);
	} 
 } 
posted @ 2024-10-02 20:18  SigmaToT  阅读(18)  评论(1)    收藏  举报