请问这样写对吗?
查看原帖
请问这样写对吗?
826774
Little_Fox_Fairy楼主2024/9/6 19:27
inline void split(int loc)
{
	e.emplace(e.begin()+loc+1,e[loc]);
	e[loc].a.erase(e[loc].a.begin()+limit,e[loc].a.end());
	e[loc+1].a.erase(e[loc+1].a.begin(),e[loc+1].a.begin()+limit);
	for (auto v : e[loc].a) e[loc+1].sums[v]--,e[loc+1].sumc[bel[v]]--;
	for (auto v : e[loc+1].a) e[loc].sums[v]--,e[loc].sumc[bel[v]]--;
	return ;
}

这是我块链里面的一段代码,功能是将 loc 这个块分成 l 到 limit 和 limit+1 到 r 这两个块。看了半天应该是没问题的,但是实际运行 RE 了。

下面两个循环就是更新的分块求区间第 K 大的两个数组。

2024/9/6 19:27
加载中...