约翰和贝西在叠积木。共有30000块积木,编号为1到30000。一开始,这些积木放在地上,自然地分成N堆。贝西接受约翰的指示,把一些积木叠在另一些积木的上面。一旦两块积木相叠, 彼此就再也不会分开了,所以最后叠在一起的积木会越来越高。约翰让贝西依次执行P条操作,操作分为两种:

  • 第一种是移动操作,格式为“移动X到Y的上面”。X和Y代表两块积木的编号,意思是将X所的那堆积木,整体叠放到Y所在的那堆积木之上;

  • 第二种是统计操作,格式为“统计Z下方的积木数量”。Z代表一块积木的编号,意思是贝西需要报告在编号为Z的积木之下还有多少块积木

请编写一个程序,帮助贝西回答每条统计问题。

这题就是并查集的一个板子,这里大概不用讲了,代码放一下

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
template<typename T>inline void read(T &FF){T RR=1;FF=0;char CH=getchar();for(;!isdigit(CH);CH=getchar())if(CH=='-')RR=-1;for(;isdigit(CH);CH=getchar())FF=(FF<<1)+(FF<<3)+(CH^48);FF*=RR;
}
const int N=1e5+10;
int q,fa[N],dep[N],sz[N],x,y;
char flag;
int find(int x){if(fa[x]==x)return x;int tmp=find(fa[x]);dep[x]+=dep[fa[x]];return fa[x]=tmp;
}
int main(){read(q);for(int i=1;i<N;i++)fa[i]=i,sz[i]=1;while(q--){cin>>flag;if(flag=='M'){read(x);read(y);int tx=find(x),ty=find(y);fa[tx]=ty;dep[tx]=sz[ty];sz[ty]+=sz[tx];}else{read(x);find(x);cout<<dep[x]<<endl;}}return 0;
}

题解 P2342 【叠积木】相关推荐

  1. 刷题记录(NC235611 牛牛国的战争,NC23803 DongDong认亲戚,NC235622 叠积木)

    NC235611 牛牛国的战争 题目链接 关键点 1.因为要在能击败所有敌军的基础下,求存活最多的数量,那么我们可以对敌军的防御力从大到小排列,对于友军的攻击力从大到小排列,这样遍历一次敌军,将所有可 ...

  2. 叠积木/银河系英雄传说[NOI2002]题解

    题目右转 luogu P2342 其实这道题和 [NOI2002]银河英雄传说 一模一样(双倍经验) 言归正传: 题目中的 "移动 \(X\) 到 \(Y\) 的上面" 操作可以看 ...

  3. 华为机试真题 C++ 实现【叠积木】

    目录 题目 思路 考点 Code 题目 有一堆长方体积木,它们的长度和宽度都相同,但长度不一. 小橙想把这堆积木叠成一面墙,墙的每层可以放一个积木,也可以将两个积木拼接起来,要求每层的长度相同. 若必 ...

  4. 华为OD机试真题 Python 实现【叠积木】

    目录 题目 思路 考点 Code 题目 有一堆长方体积木,它们的长度和宽度都相同,但长度不一. 小橙想把这堆积木叠成一面墙,墙的每层可以放一个积木,也可以将两个积木拼接起来,要求每层的长度相同. 若必 ...

  5. 华为od机试: 叠积木

    import java.util.Arrays; import java.util.Scanner;public class Solution_回溯 {public static void main( ...

  6. 洛谷P2342-叠积木

    Problem 洛谷P2342-叠积木 Accept: 373   Submit: 1.1k Time Limit: 1000 mSec    Memory Limit : 128MB Problem ...

  7. 搭积木(block)

    [问题描述] 小 OY 是一个喜欢搭积木的孩子,他有一天决定向小 C 展示他特别的搭积木 技巧. 现在一条直线上从左到右有 n 个位置,标号 1..n,第 i 个位置坐标为 x_i. 每个位置上都预先 ...

  8. 【计蒜客模拟赛系列】-计蒜客2021年8月普及组模拟赛

    提前:本文中部分代码和思路有借鉴或摘抄计蒜客官方题解 赛后总结 本次模拟赛的难度总算正常了些 个人战绩: 220/400,排名61 ,太弱了,一大堆AK爷 题目质量评价: 题目相比CSP-J还是简单了 ...

  9. 2023华为OD统一考试(B卷)题库清单(持续收录中)以及考点说明

    文章目录 华为OD在线刷题OJ 华为OD统一考试A卷+B卷 新题库说明 ACM输入输出模式 机考代码查重 2023华为OD统一考试(B卷) - 100分值 2023华为OD统一考试(B卷) - 200 ...

  10. iOS11正式推出,第一批AR应用上线App Store!

    今天苹果推出了iOS11正式版,其能够适配包括下至iPhone5s以及最近几款iPad的"数以百万计的设备",如果你的设备也能升级到该系统,意味着接下来可以享用一个全新的App S ...

最新文章

  1. 如何制作并更改项目icon文件
  2. mac开启64位内核
  3. 腾讯视频下载安装_如何上传视频到腾讯视频平台
  4. 简单区分NMOS和PMOS的方法
  5. 分层目标规划matlab,多目标规划问题Matlab示例_fgoalattain.doc
  6. 计算机械效率的公式怎么读,机械效率公式总结
  7. Notepad++-第一篇命令行语句执行之编译、运行Java
  8. 数据挖掘学习(四)——常见案例总结
  9. android开源系统brvah,Brvah——一个强大的Adapter框架
  10. 线性代数_1、二阶、三阶行列式、排列、逆序
  11. css 全角设置,CSS Flex框布局:全角行和列
  12. Android系统设置settings应用学习(二)--源代码解析
  13. Laravel 邮件发送
  14. 基础知识------我所知道的、应该知道的
  15. 洛谷 P2530 [SHOI2001] 化工厂装箱员
  16. 无聊的农场 - vue小游戏
  17. 蓝桥杯习题-2019 第十届-研究生组-RSA加密-java
  18. matlab 蒙特卡洛法书籍,[转载]matlab的蒙特卡洛算法
  19. 进销存系统的先进先出设计思路解决方案
  20. LRTimelapse 5 for Mac(专业延时摄影软件)

热门文章

  1. mysql 周平均值_SQL语句: 按周、月统计总值 和 平均值
  2. 电脑usb蓝牙的使用
  3. 带log的计算器html代码,lg计算器(log计算器在线)
  4. 你以为你在利用碎片化时间,实际上你的时间被碎片化了
  5. 逻辑架构和物理架构在架构设计中的应用
  6. 三星S5P6818之UBOOT网络配置
  7. 【行业专题报告】酒类(白酒、啤酒)-专题资料
  8. 何为A站、B站、C站、D站、F站
  9. Pandas的read_excel()函数读取excel时遇到身份证含空值(pandas识别nan为float类型)自动变成科学计数法的解决办法
  10. android 自定义searchview,android自定义searchView圆角