当前位置: 首页 > news >正文

238. 银河英雄传说

Powered by:NEFU AB-IN

Link

文章目录

  • 238. 银河英雄传说
    • 题意
    • 思路
    • 代码

238. 银河英雄传说

  • 题意

    有一个划分为 N列的星际战场,各列依次编号为 1,2,…,N
    有 N艘战舰,也依次编号为 1,2,…,N,其中第 i号战舰处于第 i列。
    有 T条指令,每条指令格式为以下两种之一:
    M i j,表示让第 i号战舰所在列的全部战舰保持原有顺序,接在第 j号战舰所在列的尾部。
    C i j,表示询问第 i号战舰与第 j号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。
    现在需要你编写一个程序,处理一系列的指令。

  • 思路

    并查集——边带权的例题
    B站讲解录像!

  • 代码

    /*
    * @Author: NEFU AB-IN
    * @Date: 2023-02-20 21:51:02
    * @FilePath: \Acwing\238\238.cpp
    * @LastEditTime: 2023-02-21 11:27:22
    */
    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #undef int#define SZ(X) ((int)(X).size())
    #define ALL(X) (X).begin(), (X).end()
    #define IOS                                                                                                            \ios::sync_with_stdio(false);                                                                                       \cin.tie(nullptr);                                                                                                  \cout.tie(nullptr)
    #define DEBUG(X) cout << #X << ": " << X << '\n'
    typedef pair<int, int> PII;const int N = 1e5 + 10, INF = 0x3f3f3f3f;int fa[N], d[N], sz[N];int find(int x)
    {if (fa[x] != x){int rt = find(fa[x]);d[x] += d[fa[x]];fa[x] = rt;}return fa[x];
    }signed main()
    {IOS;int t;cin >> t;for (int i = 1; i < N; ++i){fa[i] = i;sz[i] = 1;}while (t--){char q;int a, b;cin >> q >> a >> b;int ra = find(a), rb = find(b);if (q == 'M'){if (ra != rb){fa[ra] = rb;d[ra] = sz[rb];sz[rb] += sz[ra];}}else{if (ra != rb)cout << "-1\n";elsecout << max(0, abs(d[a] - d[b]) - 1) << '\n';}}return 0;
    }
    
http://www.lryc.cn/news/14883.html

相关文章:

  • centos7 开机自启动自定义脚本
  • 【Linux】动静态库的制作
  • 数据备份学习笔记2
  • webRTC
  • 用Python搓一个黑洞
  • Spring MVC常用功能及注解
  • shell 编程
  • Leetcode.1401 圆和矩形是否有重叠
  • CHAPTER 3 Web Server - httpd配置(二)
  • VSCode 连接 SSH 服务器
  • 如何选择靠谱的插画培训课程
  • 剑指 Offer 28. 对称的二叉树
  • 深入Spring底层透析后置处理器之豁然开朗篇
  • 软件测试(基础定义篇)
  • 华为OD机试 - 寻找目标字符串 | 机试题算法思路 【2023】
  • 使用echart绘制中国地图并显示人数
  • Git的常用命令
  • AcWing1018.最低通行费
  • 【面试题】vue中的插槽是什么?
  • Go语言结构体struct详解,Go空结构体的这些妙用你知道吗?
  • 华为OD机试 - 航天器(Python) | 机试题+算法思路+考点+代码解析 【2023】
  • 【Optional】告别丑陋判空,使用Optional类
  • 魔兽世界服务端端新手搭建教程
  • 宝塔搭建实战人才求职管理系统mobile手机端vue源码(五)
  • 生态应用:探讨 NGINX 与上下游系统集成时的开发经验
  • ArcGIS批量拼接大量栅格遥感影像:Mosaic工具
  • Flink UI部署jar包报错
  • Linux就该这么学:RAID与LVM磁盘阵列技术
  • Prometheus+Grafana监控
  • 【JUC2022】第三章 线程中断与 LockSupport