正题

题目链接:
https://www.luogu.org/problemnew/show/P1196


大意

有30000列和30000个飞船,开始时i号飞船在i列上。有两种操作:
(1)将x所在的列上的所有飞船连接在y号飞船所在的列上
(2)询问x号飞船与y号飞船之间相隔几个飞船


解题思路

用两个数组分别储存离它祖先的距离和后面的飞船数量(包括上自己)。然后在寻找祖先压缩路线时重新计算离他祖先的距离,然后用前缀和求相隔的飞船数。


代码

#include<cstdio>
using namespace std;
int father[30001],behind[30001],front[30001];
int n,q,x,y;
char c;
int abs(int x)
{if (x<0) return -x;else return x;
}
int find(int x)
{if (father[x]==x) return x;int lf=find(father[x]);front[x]+=front[father[x]];//下传标记return father[x]=lf;
}//寻找祖先
int unionn(int x,int y)
{int fa=find(x),fb=find(y);father[fa]=fb;front[fa]=behind[fb];behind[fb]+=behind[fa];
}//连接两点
int main()
{scanf("%d",&q);n=30000;for (int i=1;i<=n;i++){father[i]=i;front[i]=0;behind[i]=1;}//初始化for (int i=1;i<=q;i++){scanf("\n%c %d %d",&c,&x,&y);if (c=='M'){unionn(x,y);//连接}if (c=='C'){if (find(x)!=find(y)) printf("-1\n");else{printf("%d\n",abs(front[x]-front[y])-1);//输出}}}
}

P1196 ssl1225-银河英雄传说【图论,并查集】相关推荐

  1. P1196 [NOI2002] 银河英雄传说 (并查集 合并

    添加链接描述 #include<bits/stdc++.h> using namespace std; const int N=5e5+9; int fa[N],sum[N],front[ ...

  2. 银河英雄传说 acwing-238 并查集

    题面链接:238. 银河英雄传说 - AcWing题库 题面: 思路:并查集, 如果没有求两艘战舰之间的战舰数量,这就是一题很简单的并查集 但是这题需要计算两艘战舰之间的数量,我们就需要维护一个d数组 ...

  3. 图论 + 并查集 ----最小生成树重构图 + 可撤销并查集 + set启发式合并 时间线上的离线求解 D. Graph and Queries

    解题思路 题目大意: 就是给你一个无向图,每个点都有一个权值,和qqq次询问 每次询问有两种操作 1 x:就询问从x点出发,能访问到的最大权值是多少,并把最大权值那个点的权值设置为0 2 x:就是删除 ...

  4. 洛谷1196 银河英雄传说(并查集)

    传送门 [题目分析] 题目整个就一赤裸裸的并查集啊....就多了一个记录深度.... 每次M操作就是merge x->y,每个并查集,记录父亲.大小.深度三个值,每次find父亲的时候记录深度即 ...

  5. 【NOI2002】【Luogu1196】银河英雄传说(并查集带边权)

    problem 有30000条队列,初始每条队列一条战舰,编号为1-30000. 给出T条指令,分为合并和询问, 1.合并指令为: M i j 含义为第i号战舰所在的整个战舰队列,作为一个整体(头在前 ...

  6. 牛客小白月赛25 C-白魔法师 ( 图论 + 并查集 )

    题目链接 解题报告: 思路:如果将一个黑色点染成白色,那么将得到一个白色连通块,这个连通块由和这个黑色点连结的所有白色连通块组成. 如果将一个白色点染成白色,那么不会有任何变化. 所以我们可以先并查集 ...

  7. luoguP1196 银河英雄传说(并查集)

    题目描述 公元五八○一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山压顶 ...

  8. 洛谷 P1196 [NOI2002]银河英雄传说 带权并查集

    https://www.luogu.org/problem/P1196 题目描述 公元五八○一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展 ...

  9. 图论8 并查集深入解析——边带权并查集和拓展域并查集和最小生成树

    我们先复习一下并查集的基本知识. 并查集的三个操作:查询,初始化,合并:并查集的结构:操作方法以及代码:路径压缩优化(详见<图论7 弗洛伊德&并查集算法详解>). 补充一下,并查集 ...

  10. 「图论」第1章 并查集课堂过关

    文章目录 A. [例题1][模板]并查集 题目 代码 B. [例题2]程序自动分析 题目 代码 C. [例题3]银河英雄传说 题目 题目背景 题目描述 输入格式 输出格式 输入输出样例 说明/提示 思 ...

最新文章

  1. 早上突然看明白 shader和材质球的关系
  2. idea maven中的profiles是干什么的
  3. 4.2.2 OS之磁盘调度算法(FCFS、SSTF、SCAN、LOOK、S-SCAN、C-LOOK)
  4. IOS静态库生成及测试
  5. 三款最安全的Linux操作系统(适合从事网络安全工作者使用)
  6. 合成创意海报灵感|比技术更重要的是创意!
  7. PWDX查找程序执行路径
  8. 数模美赛常用算法matlab代码总结+数模大礼包
  9. flex:1代表什么意思
  10. linux 修改 bcast,Linux Ubuntu下IP的查看和修改
  11. 经常逛Github的人才知道的开源框架
  12. Java SHA-256 算法实例
  13. yum出现Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile解决方法
  14. 廖雪峰python教程杨辉三角_廖雪峰--python教程:笔记三
  15. sql server怎么实现mysql 中的locate函数
  16. 吉时利Keithley软件2600系列2601B|2602B|2604B|2606B NS-SourceMeter源表软件
  17. PS霓虹灯光字体效果一键制作方法
  18. 混合云会成为泡影吗?数据中心的高层权衡
  19. 《淘宝技术这十年》读书笔记 (三). 创造技术TFS和Tair
  20. 马云等10位大佬心酸往事:9天9夜未睡、装姑娘陪聊、一夜白头…

热门文章

  1. linux级别3怎么配置DNS,Linux下DNS服务器配置详解
  2. 如何将mysql文件导入MySQL_如何将mysql5的sql文件导入到mysql4?
  3. spyder pyecharts不显示_我的显示器需要定时校色吗?
  4. Power Network POJ - 1459(EK算法模板+详解)
  5. android环境搭建出错,androidstudio配置环境遇到的各种错误(持续更新中)
  6. 大一计算机上机考试第七套,国家开放大学电大《计算机组网技术》机考第七套题库及答案.doc...
  7. redis深度历险_Redis的数据结构(内存具体怎么优化的)
  8. Anaconda创建python虚拟环境
  9. 基于matlab的回波,基于MATLAB回波信号产生与消除.doc
  10. P1829 [国家集训队]Crash的数字表格(推了好久的mobius反演)