首页 > TAG信息列表 > P1196
洛谷P1196 [NOI2002] 银河英雄传说
题链 边带权并查集,val[i]记录编号为i的舰船距离根舰船的距离,合并时如x接到y所在舰队的末尾,fx,fy为x,y的根节点,并不是val[fx] += val[y],这里的若不是真正舰队末尾则出错,需要sum[i]数组记录某一列舰队的数目,val[fx] += sum[fy]; 具体如代码着重部分 #include <bits/stdc++.h> #include解题报告:luogu P1196 [NOI2002]银河英雄传说
由于并查集让我很自闭(其实是我太弱了),所以学习了加权并查集,这是例题: 题目链接:P1196 [NOI2002]银河英雄传说 不是很简单,但对于大佬还是签到题。 合并与路径压缩时直接维护\(dis[],num[]\),就好了,不过为什么要引进\(num[]\)呢? 真无奈。 不过++此题就很简单了,注意\(getf()\)有两句不要Luogu P1196 [NOI2002]银河英雄传说
带权并查集 对于每一列记录id[i]表示第i号战舰的序号,sum[i]表示第i号战舰所在列的战舰个数 对于每一个合并操作,无法对每一个所在当前列的战舰信息进行更新 所以只对队头战舰的信息进行修改,用类似线段树中懒标记的方法 当要对这一艘战舰进行访问时,对其信息进行修改 注意,在并查集中先P1196 [NOI2002]银河英雄传说
喵喵喵这道题这题跟搭积木很像,然而我居然迷失在了这令人心醉神迷的题面之中。。(逃 好的呢这题就是一个比较绕的并查集,每次将一个的头接在要移到的地方的尾上,并每次访问的时候用将两个的后缀数相减即可得出答案 #include<set>#include<map>#include<list>#include<queue>#includ