C126 带权并查集 P1196 [NOI2002] 银河英雄传说
视频链接:C126 带权并查集 P1196 [NOI2002] 银河英雄传说_哔哩哔哩_bilibili
P1196 [NOI2002] 银河英雄传说 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
// 带权并查集 #include <iostream> using namespace std; const int N=30005; int T; int p[N],d[N],siz[N]; int find(int x){ if(p[x]==x) return x; int t=find(p[x]); //记录新根t d[x]+=d[p[x]]; //先更新x到新根t的距离 return p[x]=t; //再更新p[x],路径压缩 } int main(){ for(int i=1;i<N;i++) p[i]=i,siz[i]=1; scanf("%d",&T); while(T--){ char op; int x,y; scanf("%s %d%d",&op,&x,&y); if(op=='M'){ int px=find(x),py=find(y); p[px]=py; //x队列接在y队列后面 d[px]=siz[py]; //更新 px到py 的距离 siz[py]+=siz[px]; //在根上记录队列大小 } else{ if(find(x)!=find(y)) puts("-1"); else printf("%d\n",abs(d[x]-d[y])-1); } } }
分类:
C 数据结构
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!