首页 > 其他分享 >梦幻布丁

梦幻布丁

时间:2023-08-03 22:15:06浏览次数:41  
标签:颜色 合并 布丁 梦幻 个数 考虑

2154. 梦幻布丁

考虑先维护连续段数。

我们可以先搞几个单链表,每个单链表存储的是每种颜色处于的所有位置,由于连续段数等于相邻两数不同的个数,我们可以先算出初始的情况,然后对于每次修改,暴力的将一种颜色的所有位置修改成另外一种颜色,这种操作一定不会使得答案增加,所以我们考虑怎么样会使其减小。对于修改后,如果和左边的值相等了,答案会减少 \(1\),右边同理,这样做最坏的情况合并复杂度为 \(O(n^2)\)。

考虑启发式合并,每次我们让每种颜色个数少的向个数多的合并,这样每个元素每次合并都会使得其所在集合大小至少翻倍,所以复杂度就是 \(O(n\log n)\)。而由于颜色有对应性,不能直接乱弄,所以我们考虑维护一个映射关系,如图

image-20230803212903691

我们考虑合并 \(1->2\),发现 \(|S_1|>|S_2|\),所以我们把 \(2->1\),然后将映射关系交叉交换即可,如图

image-20230803213036628

注意上图合并点还是用了一个技巧,就是直接将邻接表的 \(h_1\) 指向 \(h_2\),然后将 \(h_2\) 的末尾下一个元素指向了原来的 \(h_1\)(\(h\) 表示表头),这样就不需要重新插入了。

code

标签:颜色,合并,布丁,梦幻,个数,考虑
From: https://www.cnblogs.com/wscqwq/p/17604589.html

相关文章

  • 牧云 • 主机管理助手|正式开放应用市场,梦幻联动雷池WAF等多款开源软件
     0x00 前言上个月,我司长亭开源了雷池WAF,不到三天就吸引了超过上千个师傅使用,几个交流群里,师傅们讨论的热火朝天,其中两个话题引起了我们牧云 • 主机管理助手 ( Collie ) 团队的关注:没有新主机安装雷池安装配置麻烦,希望有一键安装的脚本 别着急, Collie 会出手:......
  • Neopixel组件的应用 -- 梦幻的"七彩灯带"
    项目背景micro:bit的扩展组件中有一个"Neopixel"彩带控件,利用DFROBOT套件中的"七彩灯带",设计一个梦幻的灯带来点亮生活,装饰环境吧编程实践1.材料准备:1张micro:bit开发板,1张DFROBOT扩展板,1根导线,1根七彩灯带2.添加"扩展"组件"Neopixel"(1)点击"扩展"选项(2)选择"Neopixel"组......
  • 【题解】[HNOI2007]梦幻岛宝珠
    题目分析:对于这种某一个值很大另一个值很小的背包题,就是要求找特殊性质。既然每一个\(w\)都可以写成\(a\times2^b\)的性质,就可以对于每一个\(b\)单独做背包,这样......
  • [HNOI2007]梦幻岛宝珠
    题意:01背包,但空间巨大。观察到每个 w_iwi​ 能写成 a*2^b (a,b∈N) 的形式,于是可以先把b相同的宝珠做一次合并,随后再进行总的合并。b相同的宝珠合并时直接可以使......
  • 梦幻的12月和年底
    停顿了两天,终于开始上班了!上班的感觉是真的好呀! 今天12.27,过去的一个月似乎在梦中,而一两个月前动态清零的政策还在执行中。 10.13号,因我老公办公一层楼中有人从密接......
  • 梦幻布丁 启发式合并板子
    //题意:将一段布丁染色,然后有两种操作,操作1将颜色为x的布丁全部染为y,操作2统计当前一共有多少段颜色//思路:将x染色为y可以想到启发式合并,但是注意我们交换大小集合后,有可......
  • 梦幻布丁
    梦幻布丁#include<bits/stdc++.h>usingnamespacestd;constintM=1e6+5;inta[M],now[M];intans;vector<int>g[M];voidmerge(intx,inty){for(autoi......
  • PS新手教程-如何使用PS制作一幅水晶球里的梦幻世界图片
    如何使用PS制作一幅水晶球里的梦幻世界图片?给大家介绍如何使用PS制作一幅水晶球里的梦幻世界图片,一起来看看吧。1.打开ps,打开水晶球素材图片编辑​2.执行选择-主体......
  • P3188 [HNOI2007]梦幻岛宝珠 题解
    一道不错的dp题,下令原背包容量为\(m\)。注意到\(w_i=a\times2^b\)中\(a,b\)都比较小,尝试按照\(a\)或者\(b\)分组然后合并,但是显然如果我们按照\(a\)分组就......
  • 数位dp P3188 [HNOI2007]梦幻岛宝珠-Solution
    数位考虑+背包(+滚动数组)首先,我们能发现,这是一道\(n\)很小但是体积和权值都非常大的背包。但是这个题的体积有一个特殊的性质,就是他是\(a\times2^b,a\leq10\)的形......