[HNOI2009]梦幻布丁

匿名 (未验证) 提交于 2019-12-02 23:39:01

题意:N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色.

对每个颜色的位置维护链表。合并两个颜色,连接链表,统计贡献。

统计贡献的复杂度是与链表长度有关的。如果遍历长度短的链表那么复杂度自然更小(遍历链表然后比较相邻元素的颜色)

于是想到启发式合并,把小的合并到大的上

每个元素只多被合并log次(因为每次合并后长度翻一倍)总复杂度nlogn

 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!