首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
叠积木
5条解析
开通博客写题解
重生之我是大菜狗
发表于 2023-07-15 14:28:54
这道题维护的附加信息是某一块积木下面还有多少块积木,并查集来写用两个数组 d[ ] 和 cnt [ ], d [ ]表示这块积木到上一个节点有多少块积木 比如 x的祖宗节点是 p[x],那d[x]代表的就是x到最下面一块积木也就是祖宗节点p[x]的数量 &nb
展开全文
菜鸡aaa
发表于 2023-08-05 15:17:14
一、把每堆积木看作一个集合,最下方的积木是集合的根节点 二、只需要维护集合中每个元素到根节点的距离d[x](这题和食物链那题基本相同) 三、还需要维护每个集合中元素的数量s[x],目的是为了方便后面维护d[x] 四、find(x)函数返回x的祖宗节点,同时更新从x节点到祖宗节点路径上所有的节点d[x
展开全文
龙文浩2100130836
发表于 2022-07-13 21:30:27
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <vector> #
展开全文
在刷题的单身狗很开心
发表于 2023-09-17 18:15:22
一个需要维护附加信息的并查集。需要维护的信息为某编号为 x 的积木下方有多少块积木。直接维护需要更新一棵树的所有节点,这显然是不方便的。 在这里我们选择让根节点保存某个编号下的箱子总数,然后下面被连接的根节点保存其下方有多少箱子。这样查询某个编号的箱子下面的箱子个数只需要向
展开全文
牛客369234791号
发表于 2024-03-14 22:31:58
">using namespace std; const int N = 30010; int d[N];//代表当前节点到其祖宗节点的长度 int c[N];//当c[n](n==祖宗节点)c[n]表示当前列的大小 int fa[N];//用于并查集记录父亲节点 int find(int a) {
展开全文
查看本题
查看本题讨论
相关比赛
32312-算法基础精选题单补充题目
进入比赛
59977-【200题】算法基础精选题单
进入比赛
60907-2023WIT集训2
进入比赛
60932-第二周训练题单
进入比赛
74487-ABTU校队赛Round4
进入比赛
等你来战
查看全部
牛客小白月赛115
报名截止时间:2025-04-25 21:00
牛客周赛 Round 91
报名截止时间:2025-04-27 21:00
2025牛客五一集训派对day1
报名截止时间:2025-05-01 17:00
2025牛客五一集训派对day2
报名截止时间:2025-05-02 17:00
2025牛客五一集训派对day3
报名截止时间:2025-05-03 17:00
2025牛客五一集训派对day4
报名截止时间:2025-05-04 17:00
2025牛客五一集训派对day5
报名截止时间:2025-05-05 17:00
牛客周赛 Round 92
报名截止时间:2025-05-11 21:00
哈尔滨华德学院第十六届程序设计竞赛(同步赛)
报名截止时间:2025-05-13 20:30
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题