0%

Asia EC Online 2025 (I)——Canvas Painting ( 使用 dsu on next 实现大值域未涂色点的快速查找)

思路讲解

不难想到,其实这个区间长度比较大的自由度
区间长度小的自由度比较小

因为咒语之间的顺序不重要,那么肯定是要排序的。
我们不妨用右端点排序。

那么我们发现,只要两个块颜色不同,且两个块中有一个未经过染色
(即保留着自己初始的独特颜色)
那么就是有一个贡献。

可以使用 dsu on next 进行下一个未涂色点的查询。

https://chatgpt.com/share/68bfb91c-7cf0-8013-8e65-7615f4bf510f

核心贪心代码

1
2
3
4
5
6
7
8
9
10
ll ans=N;
for (auto&[r, vec] : g) {
for(auto l:vec){
ll x=find(l); // 第一个未被涂色的点
if(x<r){
fa[x]=x+1;
--ans;
}
}
}

AC代码

https://qoj.ac/submission/1307214

心路历程(WA,TLE,MLE……)