银河英雄传说

news/2024/11/14 11:18:26/
//分两棵树,第二棵树dis[i]+dis[f[i]]曾经的父亲,
1(到曾经的父亲距离)+5 (曾经的父亲到当下的父亲的距离)
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int M=30000;
int t;
int f[M+10],dis[M+10];
int size[M+10];int find(int i)
{if (f[i]==i) return i;dis[i]+=dis[f[i]];//dis[x] dis[y]return f[i]=find(f[i]);
}int main()
{scanf("%d",&t);for (int i=1;i<=M;i++){f[i]=i;size[i]=1;}char c; int x,y; int fx,fy;int ans=0;while(t--){scanf("\n");c=getchar();scanf("%d %d",&x,&y);fx=find(x);fy=find(y);if (c=='M'){f[fx]=fy;dis[fx]=size[fy];size[fy]+=size[fx];}else{if(fx!=fy) ans=-1;else{if(dis[x]<dis[y]){ans=dis[y]-dis[x]-1;}else ans=dis[x]-dis[y]-1;}
//          for(int i=1;i<=5;i++)
//              cout<<dis[i]<<",";printf("%d\n",ans);}}return 0;
}

http://www.ppmy.cn/news/404286.html

相关文章

并查集——银河英雄传说

银河英雄传说 解&#xff1a;对M操作&#xff0c;用并查集维护即可。对于C操作&#xff0c;在合并结点的时候还需要维护s和d两个数组&#xff0c;s表示当前集合的大小&#xff0c;保存在根结点上&#xff0c;d表示当前元素到根结点的距离&#xff0c;保存在各个元素上。在合并…

并查集——银河英雄传说()

传送门&#xff1a;238. 银河英雄传说 - AcWing题库 思路&#xff1a; 使用并查集可以传递关系的性质&#xff0c;维护一个cnt[i]数组&#xff0c;该数组用于记录以i为跟并查集树下的战舰的数量&#xff0c;用一个d[i]数组表示在i前面的战舰的数量。 d数组和cnt数组的维护可以…

【JZOJ1826】银河英雄传说

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

猎人与猎狗的故事

猎人与猎狗&#xff0c;看似永恒的主仆&#xff0c;但事事无绝对。一个小故事献给大家&#xff0c;故事虽小&#xff0c;含义颇丰&#xff0c;请各位看官慢慢看&#xff0c;细细读&#xff0c;用心品&#xff0c;绝对不会浪费大家的时间。既可以看好看的故事又可以在故事中受到…

【ACWing】238. 银河英雄传说

题目地址&#xff1a; https://www.acwing.com/problem/content/240/ 有一个划分为 N N N列的星际战场&#xff0c;各列依次编号为 1 , 2 , … , N 1,2,…,N 1,2,…,N。有 N N N艘战舰&#xff0c;也依次编号为 1 , 2 , … , N 1,2,…,N 1,2,…,N&#xff0c;其中第 i i i号战…

六边形战士

代码 效果如下

猎人、猎狗和公司

西方企业制度和经济制度的由来 至理名言&#xff1a; 干活的总是拿得少的&#xff0c;拿得多的都是不干活的——《人力资源管理》&#xff08;批注&#xff1a;此话全有道理吗&#xff1f;不是&#xff01;&#xff09; 也许有人看过&#xff0c;但没关系&#xff0c;的确有意思…

盘点五种最常见加密算法!

大家好&#xff0c;我是Martin。 今天&#xff0c;就给大家来盘点一下最常见的5种加密算法。 大家平时的工作中&#xff0c;可能也在很多地方用到了加密、解密&#xff0c;比如&#xff1a; 用户的密码不能明文存储&#xff0c;要存储加密后的密文 用户的银行卡号、身份证号…