首页 > 代码库 > 51nod 1276 一个标签是并查集但跟并查集没有关系的3级题

51nod 1276 一个标签是并查集但跟并查集没有关系的3级题

(1)a,b排序的原因是比较快。

(2)visit每次枚举询问不需要初始化的原因:b是升序排列的,枚举到b(i)时前面已经被淹没的岛屿仍然被淹没。

(3)ans=1的原因是在b=0是仅存在一个大岛屿。

(4)整个问题存在四种情况

    1)第一个岛屿被淹没,这时如果第2个岛屿早已经被淹没了,就说明第一个岛屿被淹没以前是孤立存在的,现在被淹没了,那么ans当然要--;

    2) 最后一个岛屿被淹没,这时如果第n-1个岛屿早已经被淹没了,同2)。

    3) 中间的一个岛屿被淹没了,如果前一个岛屿和后一个岛屿早已经被淹没了,同2)。

    4) 中间的一个岛屿被淹没了,如果前一个岛屿和后一个岛屿都没有被淹没,这时淹没这个岛屿就相当于把原来一个大岛屿分成两半,ans要++;

    5) 中间的一个岛屿被淹没了,与它相邻的连个岛屿只有一个被淹没,这就相当于有一个大岛屿面积缩小了,但它还是一个完整的岛屿,所以ans不变。

(5)ans不变的原因同(2)。

(6)b.cnt储存的是询问的编号,把ans存进去就行。

51nod 1276 一个标签是并查集但跟并查集没有关系的3级题