题目链接
https://ac.nowcoder.com/acm/problem/16889
思路
(如果是在AcWing上做这题把size数组的名字改成其他变量名吧)如果是M操作即将a列战舰挪到b列的尾部,那么a列战舰的的每个d都要变,即加上size[find(b)],因为路径压缩,所以只需要头部改变即可,即d[find(a)]=size[find(b)]。
路径压缩的步骤首先要找到根节点root,然后计算父结点到上一个父结点的距离d[p[x]],d[x]初始是x到p[x]的距离,加完后是d[x]=d[x]+d[p[x]]。
c++代码

#include<bits/stdc++.h>
using namespace std;
const int N = 30005;
int p[N];
int d[N];
int size[N];
int find(int x)
{if(x!=p[x]){int t=find(p[x]);d[x]+=d[p[x]];p[x]=t;}return p[x];
}
int main()
{for(int i=0;i<N;i++){p[i]=i;d[i]=0;size[i]=1;}int n;scanf("%d",&n);while(n--){char op[2];int a,b;scanf("%s%d%d",op,&a,&b);if(op[0]=='M'){int xx=find(a);int yy=find(b);if(xx!=yy){p[xx]=yy;d[xx]=size[yy];size[yy]+=size[xx];}}else if(op[0]=='C'){int aa=find(a);int bb=find(b);if(aa!=bb){printf("-1\n");}else{printf("%d\n",max(0,abs(d[a]-d[b])-1));}}}return 0;
}

银河英雄传说————牛客相关推荐

  1. [C++] 牛客网:合并两个有序的数组

    主要是体验一下牛客网里的核心代码模式到底是怎么弄的..还有C++这个东西平常用的太少了,试一试. 以外的还体验到了sort()函数的使用. 来源:牛客网 题目链接:合并两个有序的数组 知识点:数组.双 ...

  2. 牛客~~打篮球~~~模拟水题

    链接:https://www.nowcoder.com/acm/contest/118/D 来源:牛客网 题目描述 1, 2, 3在打篮球, 可是二打一总是不公平的, 于是他们决定一对一,另一个人在边 ...

  3. 字节跳动java笔试题目_牛客网--字节跳动面试题--特征提取

    牛客网--字节跳动面试题--特征提取 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 来源 链接:特征提取 来源:牛客网 题目 ...

  4. 2019年牛客多校第1场 赛后总结

    A题 :Equivalent Prefixes  题意:就是给你两个有n个不同数的串,然后保证1-p区间内任选一个区间,使得区间中最小值的下标相同,找到最大的p值  思路:我的思路是设置两个单调栈,然 ...

  5. 牛客小白月赛5-F题: 圆(circle)

    题目链接:https://www.nowcoder.com/acm/contest/135/F 题解作者:Stump 题解链接:https://www.nowcoder.com/discuss/878 ...

  6. 牛客网:为什么不能将实数作为 HashMap 的 key?

    欢迎关注方志朋的博客,回复"666"获面试宝典 1.起因 让我关注到这一点的起因是一道题:牛客网上的max-points-on-a-line 题目是这么描述的: Given n p ...

  7. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  8. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  9. 2021牛客寒假算法基础集训营1 J 一群小青蛙呱蹦呱蹦呱

    今天的比赛没打( 睡午觉去了,今天太累了 晚上来看看题 2021牛客寒假算法基础集训营1 J 一群小青蛙呱蹦呱蹦呱 题目传送门 板子题( 我们知道由唯一分解定理得,若 n=p1α1×p2α2×p3α3 ...

最新文章

  1. c# equals与==的区别
  2. stm 32 IO重映射
  3. 4.2w Star的文件同步工具,比VIP网盘还好用!
  4. 读《人,绩效和职业道德》有感
  5. redis 数据操作命令汇总(string hash list set zset)
  6. netty 管道和handler的加载和处理流程
  7. LOD优化策略-通篇
  8. ABAP Business switc和business function简介
  9. php为什么在变量前加,php中变量前加、@等符号是什么意思?
  10. C#中DataRow的初始化
  11. sort、qsort排序
  12. 【R图秀-6】地震来了
  13. 【python写一个无限弹窗】
  14. abs内控流程图_abs成本费用核算流程图
  15. 加固机箱设计资料第289篇:基于3U VPX的 5槽加固机箱
  16. wuauclt.exe是什么进程?为什么运行?wuauclt.exe进程介绍
  17. 大数据发展呈现十大趋势
  18. debussy下载及安装
  19. android实现异网双卡双待识别运营商网络
  20. python中文相似度_python文本相似度计算

热门文章

  1. IntelliJ IDEA 模板
  2. 3年外包裸辞,面试阿里、字节全都一面挂,哭死.....
  3. 数据压缩三 AVI和WAV格式分析
  4. 【QMK键盘】简单的QMK固件键盘环境搭建
  5. Webpack中的sourcemap以及如何在生产和开发环境中合理的设置sourcemap的类型
  6. unit自动驾驶怎么使用_微软模拟飞行10如何自动驾驶?
  7. 无间还是有道 SaaS“年度贡献奖”引猜想
  8. 视频转为GIF怎么做 如何做GIF动态图
  9. windows提示“你可能是盗版软件受害者”的解决方法
  10. 算法12---约瑟夫环问题