P1196 银河英雄传说

https://www.luogu.com.cn/problem/P1196

题目描述

杨威利擅长排兵布阵,巧妙运用各种战术屡次以少胜多,难免恣生骄气。在这次决战中,他将巴米利恩星域战场划分成 30000 列,每列依次编号为 1,2,…,300001, 2,\ldots ,300001,2,…,30000。之后,他把自己的战舰也依次编号为 1,2,…,300001, 2, \ldots , 300001,2,…,30000,让第 i 号战舰处于第 i 列,形成“一字长蛇阵”,诱敌深入。这是初始阵形。当进犯之敌到达时,杨威利会多次发布合并指令,将大部分战舰集中在某几列上,实施密集攻击。合并指令为 M i j,含义为第 i 号战舰所在的整个战舰队列,作为一个整体(头在前尾在后)接至第 j 号战舰所在的战舰队列的尾部。显然战舰队列是由处于同一列的一个或多个战舰组成的。合并指令的执行结果会使队列增大。

然而,老谋深算的莱因哈特早已在战略上取得了主动。在交战中,他可以通过庞大的情报网络随时监听杨威利的舰队调动指令。

在杨威利发布指令调动舰队的同时,莱因哈特为了及时了解当前杨威利的战舰分布情况,也会发出一些询问指令:C i j。该指令意思是,询问电脑,杨威利的第 i 号战舰与第 j号战舰当前是否在同一列中,如果在同一列中,那么它们之间布置有多少战舰。

作为一个资深的高级程序设计员,你被要求编写程序分析杨威利的指令,以及回答莱因哈特的询问。

输入描述

第一行有一个整数 T(1≤T≤5×1051 \le T \le 5 \times 10^51≤T≤5×105),表示总共有 T 条指令。
以下有 T 行,每行有一条指令。指令有两种格式:

  1. M i j:i 和 j 是两个整数(1≤i,j≤300001 \le i,j \le 300001≤i,j≤30000),表示指令涉及的战舰编号。该指令是莱因哈特窃听到的杨威利发布的舰队调动指令,并且保证第 i 号战舰与第 j 号战舰不在同一列。
  2. C i j:i 和 j 是两个整数(1≤i,j≤300001 \le i,j \le 300001≤i,j≤30000),表示指令涉及的战舰编号。该指令是莱因哈特发布的询问指令。

输出描述

依次对输入的每一条指令进行分析和处理:
如果是杨威利发布的舰队调动指令,则表示舰队排列发生了变化,你的程序要注意到这一点,但是不要输出任何信息。
如果是莱因哈特发布的询问指令,你的程序要输出一行,仅包含一个整数,表示在同一列上,第 i 号战舰与第 j 号战舰之间布置的战舰数目。如果第 i 号战舰与第 j 号战舰当前不在同一列上,则输出 -1。

样例

#1

4
M 2 3
C 1 2
M 2 4
C 4 2
-1
1

提示

解析

不得不说,这题我在 AcWing 过了,但在洛谷没过,一直 WA 爆零(同一份代码),经过数个小时的努力,我发现洛谷用 br.read() 居然会读入错误,就是不报错,只是读入的东西奇奇怪怪的,不是我想要的。

「洛谷」P1196 银河英雄传说相关推荐

  1. 洛谷 P1196 银河英雄传说

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

  2. 洛谷P1196 银河英雄传说

    题目大意: 一些战舰,初始时每个都在自己编号对应的队列中,现在有两个操作 : M a b:把a战舰所在的队列顺序不变的接到b战舰所在队列尾部 C a b:询问a b在同一个队列之间的距离 如果a b不 ...

  3. 「洛谷」P1406 方格填数

    P1406 方格填数 https://www.luogu.com.cn/problem/P1406 题目描述 给一个n 的方格矩阵,还有 n*n个整数,让你将这些整数填入矩阵,使得每行每列每个对角线上 ...

  4. 「纪念碑谷」你不知道的 8 个故事

    2014 年最受好评的游戏「纪念碑谷」终于在豌豆荚「应用发布会」栏目发布官方正式 Android 版了.本次国内正版集合了原作和「被遗忘的海岸」资料片在内的全部 18 个关卡. 或许在此之前,你早已经 ...

  5. 开发2年半,「纪念碑谷」的团队做了一款开放世界“观鸟”游戏

    如果你随便抓一个路人问他/她在手机上玩过最有艺术感的游戏是什么,相信大概率会得到的答案是「纪念碑谷」. 这款由英国Ustwo Games在2014年公布的作品极具个性和创意,在当时一众良莠不齐的移动游 ...

  6. 「LuoguP4995」「洛谷11月月赛」 跳跳!(贪心

    题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石头高度为 h_ihi​,地面的高度是 h_0 = 0 ...

  7. 【NOIP2002】银河英雄传说

    本题在洛谷上的链接:https://www.luogu.org/problemnew/show/P1196 又是一道带权并查集的题,没太多难度,就是吧... 为了提高代码能力,换了一种更松散的代码风格 ...

  8. 「洛谷P1343」地震逃生 解题报告

    P1343 地震逃生 题目描述 汶川地震发生时,四川XX中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带, ...

  9. 并查集:P1196 [NOI2002] 银河英雄传说

    传送门 带权并查集最棒了 dep记录深度,size记录集合大小 转移见代码 #include<cstdio> #include<algorithm> #include<i ...

  10. 「洛谷2495」「BZOJ3052」「SDOI2001」消耗战【虚树+树形动态规划】

    题目大意 给你\(k\)个点,让这一些点和一号节点断开,删去某一些边,求最小的删去边权之和. 做题的心路历程 做了\(HG\)昨天的模拟赛,深深感觉到了窝的菜,所以为了\(A\)掉T1这一道毒瘤,窝就 ...

最新文章

  1. thin还是thick?虚拟磁盘格式的选择题
  2. mysql DDL语句
  3. html怎么设置图片倾斜度,CSS3-css如何使图片倾斜45度显示
  4. Ecplise中的Maven项目提示找不到jar包
  5. CString与std::string unicode下相互转化
  6. 2019\Province_C_C++_B\试题F-特别数的和
  7. strace 哇,好多系统调用
  8. readonly(C# 参考)
  9. qt tabwidget 设置tab 位置_qml创建TabWidget的案例
  10. 《疯狂的站长》读后感3
  11. 8000401a 因为配置标志不正确 错误及解决办法
  12. Python打字练习程序
  13. 简单快速把EditPlus添加到右键菜单中
  14. FST(Finite-State Transducer) 原理
  15. 记录matlab符号方程符号解求法
  16. LAMMPS模拟in和data文件集合
  17. 达人评测 i5 13500h和1240p选哪个好 i5 13500h和1240p对比
  18. 2022 年最值得学习的 10 种编程语言 [更新]
  19. android6.0在状态栏添加一键截屏
  20. 基于机器学习的车牌识别系统

热门文章

  1. 英语魔法师之语法俱乐部阅读笔记
  2. Required request body is missing 问题解决
  3. 华为hcie认证工程师设备无故ARP报文丢弃配置
  4. 计算机二级答题技巧口诀,计算机二级考试复习技巧:考场答题经验分享
  5. Python爬虫系列之全国邮编区号爬取
  6. ip代理 12-02-03
  7. php alt什么意思,img标签的alt属性是什么意思?
  8. 进阶实验5-3.2 新浪微博热门话题 (30 分)
  9. 体验服务器windows系统,怀旧经典:Windows 3.0操作系统体验
  10. 干货丨面向新基建,安全厂商都准备了哪些前瞻性的“武器”?